java - 一个代理通过 JVMTI 中的 SetBreakpoint 设置的断点是否对连接到 JVM 的远程调试器可见?

标签 java remote-debugging jvm-hotspot jvmti jdwp

假设远程调试器连接到本地 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/

相关文章:

java - 无法创建android onListItemClick 方法

java - 在 apache Camel 上为 HTTPS 实现 API(SSL)的最佳方法是什么?

node.js - 在 Netbeans 8.1 上调试远程 Nodejs 项目

javascript - Chrome 扩展 : Get Current Console to Send Up to Server

java - 什么是克拉斯和克拉斯克拉斯

java - java对象头标记词详细说明

java - 在 Spring-Boot 项目中热到 Intellij 中的 HotSwap 代码?

java - 富:autocomplete and rich:suggestionbox 和有什么区别

android - 无法从 ubuntu/linux 远程调试 android/chrome

java - 关于HotSpot中thin-locks实现中锁记录的使用