引入:前面用了很多篇幅来讨论JVMTI和JDWP部分,现在终于来看最靠近用户端部分了,JDI。分析:a.JDI的基础知识和JVMTI和JDWP不一样的是,JDI提供了一组接口,这些接口是纯JAVA编写的。他们主要是给开发环境IDE用的,虽然调试器的实现可以直接利用JDWP或者JVMTI,但是多了这一层..
分类:
其他好文 时间:
2014-12-09 19:58:27
阅读次数:
206
引入:上篇文章从整体上来看待JDI协议,这里结合Eclipse的实现代码来讨论下JDI的Mirror机制。分析:镜像机制是将目标虚拟机上的所有数据、类型、域、方法、事件、状态和资源,以及调试器发向目标虚拟机的事件请求等都映射成Mirror对象。其思想和我们经常说的O/RMapping一样,其..
分类:
其他好文 时间:
2014-12-09 19:55:27
阅读次数:
186
引入:上文提到了JDI的Mirror机制,把整个目标虚拟机上的所有数据、类型、域、方法、事件、状态和资源,以及调试器发向目标虚拟机的事件请求等都映射成Mirror对象。这里进一步讨论JDI的链接模块。分析:连接模块其主要目的是提供调试器(Debugger)到目标虚拟机(TargetVM)之间的..
分类:
其他好文 时间:
2014-12-09 19:53:30
阅读次数:
284
引入:上文主要讲解了JDI的连接模块来建立Debugger到TargetVM之间的连接,这里主要讲解事件请求和处理模块。它们都在com.sun.jdi.event和com.sun.jdi.request包中。分析:Part1:查看JDI中定义的事件类型JDI中事件的接口叫Event.publicabstractinterfaceEventextendsMirror
{
pu..
分类:
其他好文 时间:
2014-12-09 19:48:04
阅读次数:
249
引入:现在我们来看JDWP层的数据包。源码在JDK中很容易找到,它定义$JAVA_HOME/include/jdwpTransport.h头文件中。分析:Part1:握手过程(handshake)握手包发生在Debugger(JDI端)和TargetVM(JVMTI端)的传输层连接建立,并且在发送任何实际数据报之前完成的。它过程如下:a.D..
分类:
其他好文 时间:
2014-12-08 19:48:29
阅读次数:
200
引入:我们先从最重要的通信层讲起。通信层(JDWP),它的全称是JavaDebugWireProtocol。从"Wire"这词就可以看出,它主要是起到"连线”的作用,也就是说,它主要是起到把最靠近程序员的JDI(也就是调试器)和最靠近运行在虚拟机中的程序的JVMTI连接在一起。因为彼此之间语言不通。..
分类:
其他好文 时间:
2014-12-08 15:47:56
阅读次数:
415
Components Debugger Interfaces / |--------------| / | VM | debuggee ...
分类:
其他好文 时间:
2014-09-10 22:17:11
阅读次数:
140
原创:http://www.cnblogs.com/lanhj/p/3874426.html警告信息:Cannot connect to VMcom.sun.jdi.connect.TransportTimeoutException控制台错误信息:FATAL ERROR in native meth...
分类:
系统相关 时间:
2014-07-29 12:04:56
阅读次数:
583