我正在开发一个使用Java和Java调试接口的简单调试器。我有两个班级Debugger
和Debuggee
。调试器类包含用于调试的逻辑。Debuggee类是正在调试的类。
当我在终端中运行应用程序时,它工作得很好。在Debugger
VM中,它预计会发生几种类型的事件。
1.VMStartEvent
1.ClassPrepareEvent
1.断点事件
1.VMDeathEvent
1.VMDisConnectEvent
当在终端中运行应用程序时,它工作得很好。被调试节点发送ClassPrepareEvent和BreakPointEvents。但在IntelliJ中运行应用程序时,它不会发送ClassPreparationEvent和BreakPointEvent。
它在VMStartEvent之后发送VMDeathEvent,然后发送VMDisConnectEvent。
为什么会发生这种行为?我应该在IntelliJ中设置什么配置吗?
1条答案
按热度按时间z9smfwbn1#
我遇到了完全相同的问题,我知道这是旧的,但如果有人在搜索完它后登录到这里,以下是对我有效的方法;您需要将运行配置中的工作目录设置为项目的目标/类别目录。例如,如果您的项目位于
/Users/name/project
,而源代码位于/Users/name/project/src/main/java/
,则将工作目录设置为/Users/name/project/target/classes/
我花了几乎一整天的时间来寻找这个问题的答案,结果发现这个错误是由于VM在通过IDE运行时没有找到被调试对象的编译类文件,因为它设置了错误的工作目录。