我正在寻找潜在的 JDI API 以在其执行期间的任意点暂停 JVM。查看BreakPointRequest的createBreakpointRequest 方法需要一个特定的位置。是否有任何其他 API 不需要位置或以某种方式获取可以传递以创建断点的当前位置。
我基本上是在寻找一种附加和暂停应用程序的方法,然后使用 JVMTI 代理接收 BreakPoint 事件的回调以执行进一步处理。谢谢
我正在寻找潜在的 JDI API 以在其执行期间的任意点暂停 JVM。查看BreakPointRequest的createBreakpointRequest 方法需要一个特定的位置。是否有任何其他 API 不需要位置或以某种方式获取可以传递以创建断点的当前位置。
我基本上是在寻找一种附加和暂停应用程序的方法,然后使用 JVMTI 代理接收 BreakPoint 事件的回调以执行进一步处理。谢谢
断点仅对源中的位置有意义。任意暂停您的应用程序可能最好通过暂停当前在 JVM 中运行的所有线程来完成。看看SuspendThreadList()
或SuspendThread
在jvmti中。这种机制将是您正在寻找的“暂停”。
我认为jdb - The Java Debugger
将是最好的选择。请检查有关的网址jdb
http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/jdb.html