在用java编程的时候,在debug模式下偶尔会出现下面的错误,jdk1.6.0-rc1:ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2JDWP exit error AGENT_ERROR_...
分类:
其他好文 时间:
2015-01-27 01:53:05
阅读次数:
233
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2今天在用Main函数测试一段代码的时候,出现此问题;参考以下文章解决问题:http://blog.csdn.net/zxl0016/article/details/7327125http://blog.csdn.net/mmllkkjj/arti...
分类:
其他好文 时间:
2015-01-13 17:50:09
阅读次数:
337
Viacommandline$java-Xdebug-agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n-jarstart.jarViastart.ini##Enableremotedebugging--exec-Xdebug-agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n
分类:
其他好文 时间:
2015-01-10 18:32:28
阅读次数:
167
引入:前面揭示了JDI的Debugger如何建立连接,发送和处理请求,这里我们专注于人机交互部分,Debugger的UI,它主要负责如何把人发出的操作转为请求,以及把请求操作反映在调试器的界面上。分析:这个插件主要都定义在org.eclipse.jdt.debug.ui_<Version>.jar中的plugin.x..
分类:
其他好文 时间:
2014-12-11 16:07:06
阅读次数:
225
引入:前面用了很多篇幅来讨论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
引入:上文讨论了Agent如何利用环境指针访问VM(管理类),这里讨论如何管理对象。分类9:对象管理a.GetObjectSize.获取对象的大小,jvmtiError
GetObjectSize(jvmtiEnv*env,
jobjectobject,
jlong*size_ptr)注意,这不是真实大小,这只是从对象的定义代码中获得的一个预估值。..
分类:
其他好文 时间:
2014-12-09 15:56:46
阅读次数:
182
引入:上文中提到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