一个调试jsp的eclipse插件的开发

一个调试jsp的eclipse插件的开发

ID:9794801

大小:94.00 KB

页数:27页

时间:2018-05-10

一个调试jsp的eclipse插件的开发_第1页
一个调试jsp的eclipse插件的开发_第2页
一个调试jsp的eclipse插件的开发_第3页
一个调试jsp的eclipse插件的开发_第4页
一个调试jsp的eclipse插件的开发_第5页
资源描述:

《一个调试jsp的eclipse插件的开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【摘要】本文通过开发一个JSP编辑器插件的示例,介绍了Eclipse中设置JSP断点的方法,以及如何远程调试JSP。作为基础知识,本文的前两部分描述了JAVADebug和JSR-45的基本原理。  本文通过开发一个JSP编辑器插件的示例,介绍了Eclipse中设置JSP断点的方法,以及如何远程调试JSP。作为基础知识,本文的前两部分描述了JAVADebug和JSR-45的基本原理。  环境要求:本文的代码是在Eclipse3.0.0,JDK1.4.2和Tomcat5.0.5上测试过的。  JAVA调试框架(JPDA)简介  JPD

2、A是一个多层的调试框架,包括JVMDI、JDWP、JDI三个层次。JAVA虚拟机提供了JPDA的实现。其开发工具作为调试客户端,可以方便的与虚拟机通讯,进行调试。Eclipse正是利用JPDA调试JAVA应用,事实上,所有JAVA开发工具都是这样做的。SUNJDK还带了一个比较简单的调试工具以及示例。·JVMDI定义了虚拟机需要实现的本地接口·JDWP定义了JVM与调试客户端之间的通讯协议调试客户端和JVM既可以在同一台机器上,也可以远程调试。JDK会包含一个默认的实现jdwp.dll,JVM允许灵活的使用其他协议代替JDWP。S

3、UNJDK有两种方式传输通讯协议:Socket和共享内存(后者仅仅针对Windows),一般我们都采用Socket方式。你可以用下面的参数,以调试模式启动JVM-Xdebug-Xnoagent-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n-XrunjdwpJVM加载jdwp.dlltransport=dt_socket使用Socket传输address表示调试端口号server=y表示JVM作为服务器,建立Socketsuspend=n表示启动过程中,JV

4、M不会挂起去等待调试客户端连接·JDI则是一组JAVA接口如果是一个JAVA的调试客户端,只要实现JDI接口,利用JDWP协议,与虚拟机通讯,就可以调用JVMDI了。  下图为JPDA的基本架构:ComponentsDebuggerInterface/

5、-----------------------

6、/

7、VM

8、debuggee----(

9、-----------------------

10、<-------JVMDI-JavaVMDebugInterface

11、back-end

12、

13、-----------------------

14、/

15、c

16、ommchannel-(

17、<---------------JDWP-JavaDebugWireProtocol

18、

19、---------------------

20、

21、front-end

22、

23、---------------------

24、<-------JDI-JavaDebugInterface

25、UI

26、

27、---------------------

28、  参见:http://java.sun.com/j2se/1.4.2/docs/guide/jpda/architecture.html  Eclipse作为一个基于JAVA的调试客户端,利用

29、org.eclipse.jdt.debugPlugin提供了JDI的具体实现。JDI接口主要包含下面4个包com.sun.jdicom.sun.jdi.connectcom.sun.jdi.eventcom.sun.jdi.request  本文不对JDI进行深入阐述,这里重点介绍JDI中与断点相关的接口。·com.sun.jdi主要是JVM(VirtualMachine)线程(ThreadReference)调用栈(StackFrame)以及类型、实例的描述。利用这组接口,调试客户端可以用类似类反射的方式,得到所有类型的定义,动

30、态调用Class的方法。·com.sun.jdi.event封装了JVM产生的事件,JVM正是将这些事件通知给调试客户端的。例如BreakpointEvent就是JVM执行到断点的时候,发出的事件;ClassPrepareEvent就是Class被加载时发出的事件。·com.sun.jdi.request封装了调试客户端可以向JVM发起的请求。例如BreakpointRequest向JVM发起一个添加断点的请求;ClassPrepareRequest向JVM注册一个类加载请求,JVM在加载指定Class的时候,就会发出一个Clas

31、sPrepareEvent事件。  JSR-45规范  JSR-45(DebuggingSupportforOtherLanguages)为那些非JAVA语言写成,却需要编译成JAVA代码,运行在JVM中的程序,提供了一个进行调试的标准机制。也许字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。