【问题标题】:Will breakpoints set via SetBreakpoint in JVMTI from one agent be visible to a remote debugger connected to the JVM?从一个代理通过 JVMTI 中的 SetBreakpoint 设置的断点对连接到 JVM 的远程调试器是否可见?
【发布时间】:2019-07-03 20:15:04
【问题描述】:

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

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

【问题讨论】:

    标签: java remote-debugging jvm-hotspot jvmti jdwp


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 2015-05-08
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多