码迷,mamicode.com
首页 >  
搜索关键字:jvmti    ( 36个结果
JDI 架构研究21 - JDI的Debugger的UI部分
引入:前面揭示了JDI的Debugger如何建立连接,发送和处理请求,这里我们专注于人机交互部分,Debugger的UI,它主要负责如何把人发出的操作转为请求,以及把请求操作反映在调试器的界面上。分析:这个插件主要都定义在org.eclipse.jdt.debug.ui_<Version>.jar中的plugin.x..
分类:其他好文   时间:2014-12-11 16:07:06    阅读次数:225
JPDA 架构研究17 - JDI概览
引入:前面用了很多篇幅来讨论JVMTI和JDWP部分,现在终于来看最靠近用户端部分了,JDI。分析:a.JDI的基础知识和JVMTI和JDWP不一样的是,JDI提供了一组接口,这些接口是纯JAVA编写的。他们主要是给开发环境IDE用的,虽然调试器的实现可以直接利用JDWP或者JVMTI,但是多了这一层..
分类:其他好文   时间:2014-12-09 19:58:27    阅读次数:206
JPDA 架构研究18 - JDI的Mirror机制
引入:上篇文章从整体上来看待JDI协议,这里结合Eclipse的实现代码来讨论下JDI的Mirror机制。分析:镜像机制是将目标虚拟机上的所有数据、类型、域、方法、事件、状态和资源,以及调试器发向目标虚拟机的事件请求等都映射成Mirror对象。其思想和我们经常说的O/RMapping一样,其..
分类:其他好文   时间:2014-12-09 19:55:27    阅读次数:186
JPDA 架构研究19 - JDI的连接模块
引入:上文提到了JDI的Mirror机制,把整个目标虚拟机上的所有数据、类型、域、方法、事件、状态和资源,以及调试器发向目标虚拟机的事件请求等都映射成Mirror对象。这里进一步讨论JDI的链接模块。分析:连接模块其主要目的是提供调试器(Debugger)到目标虚拟机(TargetVM)之间的..
分类:其他好文   时间:2014-12-09 19:53:30    阅读次数:284
JPDA 架构研究20 - JDI的事件请求和处理模块
引入:上文主要讲解了JDI的连接模块来建立Debugger到TargetVM之间的连接,这里主要讲解事件请求和处理模块。它们都在com.sun.jdi.event和com.sun.jdi.request包中。分析:Part1:查看JDI中定义的事件类型JDI中事件的接口叫Event.publicabstractinterfaceEventextendsMirror { pu..
分类:其他好文   时间:2014-12-09 19:48:04    阅读次数:249
JPDA 架构研究14 - Agent利用环境指针访问VM(对象管理篇)
引入:上文讨论了Agent如何利用环境指针访问VM(管理类),这里讨论如何管理对象。分类9:对象管理a.GetObjectSize.获取对象的大小,jvmtiError GetObjectSize(jvmtiEnv*env, jobjectobject, jlong*size_ptr)注意,这不是真实大小,这只是从对象的定义代码中获得的一个预估值。..
分类:其他好文   时间:2014-12-09 15:56:46    阅读次数:182
JPDA 架构研究13 - Agent利用环境指针访问VM(类管理篇)
引入:上文中提到Agent如何利用环境指针访问VM的(Watch)功能,这里主要讲解如何去管理类的。分类9:管理类a.GetLoadedClasses.获得虚拟机中所有被加载的类的数组。jvmtiError GetLoadedClasses(jvmtiEnv*env, jint*class_count_ptr, jclass**classes_ptr)从返回值可以看出,cl..
分类:其他好文   时间:2014-12-09 15:56:45    阅读次数:243
JPDA 架构研究15 - Agent利用环境指针访问VM(字段访问篇)
引入:上文中我们已经探讨了Agent如何利用环境指针访问VM(对象级的操作),现在我们讨论让Agent利用环境指针访问类的字段。分类10:字段访问a.GetFieldName.获取某类的某字段名字jvmtiError GetFieldName(jvmtiEnv*env, jclassklass, jfieldIDfield, char**name_ptr, char**si..
分类:其他好文   时间:2014-12-09 15:53:02    阅读次数:216
JPDA 架构研究16 - Agent利用环境指针访问VM(方法访问篇)
引入:上文中我们讲解了Agent如何利用环境指针来访问VM的字段访问部分,现在来讲解方法访问部分。分类11:方法访问a.GetMethodName.获取方法名字和签名jvmtiError GetMethodName(jvmtiEnv*env, jmethodIDmethod, char**name_ptr, char**signature_ptr, char**generic_ptr)b.Get..
分类:其他好文   时间:2014-12-09 15:51:20    阅读次数:201
JPDA 架构研究11 - Agent利用环境指针访问VM(断点操作篇)
引入:上文我们讲解了Agent如何利用环境指针访问VM(操作局部变量篇),这里主要关注于如何操作断点。这个在调试期间非常频繁的被使用。分类7:断点操作a.SetBreakPoint.设置断点,它会产生一个BreakPoint事件。jvmtiError SetBreakpoint(jvmtiEnv*env, jmethodIDmethod, jloca..
分类:其他好文   时间:2014-12-09 12:30:15    阅读次数:116
36条   上一页 1 2 3 4 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!