假设远程调试器连接到本地 JVM。 在某些时候,如果 JVMTI 代理(调试器代理除外)通过 SetBreakpoint 设置断点,它是否对远程调试器可见? 远程调试器能否跳过或移除此断点?
所谓可见,我的意思是断点命中事件将被发送到远程调试器,因此调试器将能够以与他确实设置断点的方式相同的方式运行。
最佳答案
设置断点和接收断点事件需要can_generate_breakpoint_events
能力。在 HotSpot JVM 中,此功能是独占的(或 solo ),即 can_generate_breakpoint_events
一次只能由一个 JVM TI 环境拥有。
换句话说,描述的情况永远不会发生:当 JDWP 代理存在时,没有其他 JVM TI 代理可以设置断点或订阅断点事件。
关于java - 一个代理通过 JVMTI 中的 SetBreakpoint 设置的断点是否对连接到 JVM 的远程调试器可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611862/