Debuggee节点在VMStartEvent|Java调试接口之后发送VMDeathEvent

dba5bblo  于 2022-09-20  发布在  Java
关注(0)|答案(1)|浏览(167)

我正在开发一个使用Java和Java调试接口的简单调试器。我有两个班级DebuggerDebuggee。调试器类包含用于调试的逻辑。Debuggee类是正在调试的类。

GitHub link to the Project

当我在终端中运行应用程序时,它工作得很好。在Debugger VM中,它预计会发生几种类型的事件。

1.VMStartEvent
1.ClassPrepareEvent
1.断点事件
1.VMDeathEvent
1.VMDisConnectEvent

当在终端中运行应用程序时,它工作得很好。被调试节点发送ClassPrepareEvent和BreakPointEvents。但在IntelliJ中运行应用程序时,它不会发送ClassPreparationEvent和BreakPointEvent。

它在VMStartEvent之后发送VMDeathEvent,然后发送VMDisConnectEvent。

为什么会发生这种行为?我应该在IntelliJ中设置什么配置吗?

z9smfwbn

z9smfwbn1#

我遇到了完全相同的问题,我知道这是旧的,但如果有人在搜索完它后登录到这里,以下是对我有效的方法;您需要将运行配置中的工作目录设置为项目的目标/类别目录。例如,如果您的项目位于/Users/name/project,而源代码位于/Users/name/project/src/main/java/,则将工作目录设置为/Users/name/project/target/classes/

我花了几乎一整天的时间来寻找这个问题的答案,结果发现这个错误是由于VM在通过IDE运行时没有找到被调试对象的编译类文件,因为它设置了错误的工作目录。

相关问题