我们假设远程调试器已连接到本地JVM。 在某个时候,如果JVMTI代理(调试器除外)通过SetBreakpoint设置了断点,则远程调试器是否可以看到该断点? 远程调试器是否可以跳过或删除此断点?
“可见”是指断点命中事件将发送到远程调试器,因此调试器将能够像设置断点的调试器一样工作。
答案 0 :(得分:1)
设置断点和接收断点事件需要can_generate_breakpoint_events
功能。在HotSpot JVM中,此功能是排他性的(或solo),即,一次只能由一个JVM TI环境拥有can_generate_breakpoint_events
。
换句话说,所描述的情况永远不会发生:当存在JDWP代理时,没有其他JVM TI代理可以设置断点或订阅断点事件。