为什么IntelliJ在远程调试时跳过断点

时间:2015-05-22 02:25:25

标签: debugging intellij-idea breakpoints karaf

我被要求调试在我的开发机器上托管的VM中运行的Apache Karaf(OSGi)中安装的Java应用程序。我的同事已经能够使用Eclipse成功进行远程调试。我选择的工具是IntelliJ,在我尝试远程调试时,IntelliJ连接成功(通过套接字)。如果我暂停调试会话,Karaf控制台将按预期冻结,并在我单击继续时恢复。但是当我暂停时,我可以在IntelliJ中看到以下消息,我的断点将被忽略。

断点请求不会暂停目标VM。在这种模式下无法评估方法。

这是什么意思?我搜索过并浏览了IntelliJ的文档。为什么Eclipse允许工作断点而IntelliJ不能?

1 个答案:

答案 0 :(得分:2)

首先,假设您已在调试模式下启动了OSGI容器(例如,Fuse Fabric)。通常,这是通过将参数debug添加到起始脚本来完成的。

例如:

c:\> startfabric.bat debug

Tim指出,您现在需要确保您的源代码与部署到OSGI容器的内容完全同步。

要确定,请查看与部署到服务器的源代码完全相同的源代码版本,然后选择Build - > Rebuild Project。如有必要,在您的计算机上执行mvn clean install,并部署您自己构建的软件包/功能 - 然后您就知道您在本地拥有的代码应该与部署的代码完全匹配。

最后,检查IntelliJ中的调试面板,并删除在调试模式下可能会干扰的所有Watch表达式。