如何通过 jvmti 从远程调试器接收断点事件?
How to receive breakpoint events by jvmti, from remoting debugger?
共享虚拟机中有一个jvm。其他开发者可能通过idea远程调试,导致断点挂机
由于某些原因,我需要继续这个过程。
我用 jvmti 编写了一个代理程序,试图接收断点事件以清除它们。但是没有收到任何事件。
接收setbreakpoint事件的正确方式是什么?或者任何其他方式来停止远程挂断?
提前致谢。
在 HotSpot JVM 中,can_generate_breakpoint_events
是一种独有的能力 - 这意味着一次只有一个 JVM TI 代理可以拥有这种能力。
用于远程调试的标准 jdwp
代理也是一个 JVM TI 代理。当它被加载时,没有其他 JVM TI 代理可以获取 can_generate_breakpoint_events
能力。因此,您的代理将无法 set/clear 断点或接收断点事件。
您可能尝试做的是修改原始 libjdwp 而不是尝试在您的单独代理中拦截断点事件。或者更简单 - 每当您想恢复挂起的应用程序时强制关闭 jdwp 连接。
共享虚拟机中有一个jvm。其他开发者可能通过idea远程调试,导致断点挂机
由于某些原因,我需要继续这个过程。
我用 jvmti 编写了一个代理程序,试图接收断点事件以清除它们。但是没有收到任何事件。
接收setbreakpoint事件的正确方式是什么?或者任何其他方式来停止远程挂断?
提前致谢。
在 HotSpot JVM 中,can_generate_breakpoint_events
是一种独有的能力 - 这意味着一次只有一个 JVM TI 代理可以拥有这种能力。
用于远程调试的标准 jdwp
代理也是一个 JVM TI 代理。当它被加载时,没有其他 JVM TI 代理可以获取 can_generate_breakpoint_events
能力。因此,您的代理将无法 set/clear 断点或接收断点事件。
您可能尝试做的是修改原始 libjdwp 而不是尝试在您的单独代理中拦截断点事件。或者更简单 - 每当您想恢复挂起的应用程序时强制关闭 jdwp 连接。