Java 应用程序能否检测到附加了调试器?

2022-09-04 22:29:15

我知道(jvm)启动选项,让jvm等到调试器被附加 - 这不是我在这里的意思。

是否可以从Java代码中检测调试器的附件,以便我可以例如编写一个正在执行某些操作的“脚本”,然后在某一时刻使我的应用程序等待调试器?


答案 1

哈哈这些选项是 JVM 选项,在调试器连接之前不执行任何 Java 代码。但是,你可以让应用启动,并在 getter 上旋转循环以获取从调试器中设置的变量,以便让应用继续。


答案 2

根据您想做什么,可能值得调查一下 onthrow JDWP 子选项。我实际上还没有尝试过这个;-)但似乎您可以创建一个特殊的异常类型,并捕获该异常类型以触发JVM暂停。如链接的示例所示,与 组合可以提供一些有趣的替代方案。当然,逻辑/工作流程与您表达的内容不同,但这是需要考虑的事情......launch