我正在寻找潜在的 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