3

让我们假设一个远程调试器连接到本地 JVM。在某些时候,如果 JVMTI 代理(调试器除外)通过 SetBreakpoint 设置断点,远程调试器是否可以看到它?远程调试器是否能够跳过或删除此断点?

可见我的意思是断点命中事件将被发送到远程调试器,因此调试器将能够以与设置断点的人相同的方式运行。

4

1 回答 1

1

设置断点和接收断点事件需要can_generate_breakpoint_events能力。在 HotSpot JVM 中,此功能是独占的(或单独的),即can_generate_breakpoint_events一次只能由一个 JVM TI 环境拥有。

换句话说,所描述的情况永远不会发生:当 JDWP 代理存在时,没有其他 JVM TI 代理可以设置断点或订阅断点事件。

于 2019-03-02T20:39:32.657 回答