JDI:如何在调试器中暂停Java应用程序(JVM)
问题描述:
我正在寻找潜在的JDI API来在执行期间的任意点上暂停JVM。查看BreakPointRequest createBreakpointRequest方法需要一个特定的位置。是否有任何其他API不需要位置或某种方式来获取可以传递的创建断点的当前位置。JDI:如何在调试器中暂停Java应用程序(JVM)
我基本上寻找一种附加和暂停应用程序的方法,然后使用JVMTI代理接收BreakPoint事件的回调以执行进一步处理。谢谢
答
断点才有意义,在源位置。任意暂停应用程序可能是通过暂停当前在JVM中运行的所有线程来完成的。看看SuspendThreadList()
或SuspendThread
在jvmti。这种机制将是你正在寻找的'暂停'。
答
我认为jdb - The Java Debugger
将是最好的选择。 请检查URL有关jdb
http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/jdb.html
你想暂停JVM或应用程序?如果我理解正确,一个jvm可以托管多个应用程序。如果是Jvm,Virtualmachine类,过程方法可能值得您研究。 – kosa 2012-01-15 08:06:08