在调试模式下对 java 文件应用断点时,断点不会停止该文件的控制流。但是,断点正在停止同一包中另一个文件的控制流。当我在一个文件上应用断点时,断点变为带有尾部的圆圈,并且断点停止控制流,而将其应用于其他文件时,它仅保持一个圆圈并且不会停止控制流。如何获得断点来停止控制流?
在职的:
不工作:
在调试模式下对 java 文件应用断点时,断点不会停止该文件的控制流。但是,断点正在停止同一包中另一个文件的控制流。当我在一个文件上应用断点时,断点变为带有尾部的圆圈,并且断点停止控制流,而将其应用于其他文件时,它仅保持一个圆圈并且不会停止控制流。如何获得断点来停止控制流?
在职的:
不工作:
好的,正如您在回复我的评论时提到的,您正在进行远程应用程序调试。所以最有可能的问题是您的服务器和 Eclipse 中有不同版本的代码。
简而言之,可执行文件似乎不能很好地将它们的源代码行映射到生成的 .java 文件源代码行。因此,在您的真实源代码中看起来像源代码行的内容实际上在生成的源代码中并不可执行,因此它实际上无法维持断点。
希望能帮助到你!
请保证你的代码和服务器保持一致,否则会有这个问题。
带尾的圆圈:成功设置断点,因为您的源代码与字节代码匹配,并且调试控件将到达那里。
只有 Circle:源代码与字节代码不同(可能是您正在运行较旧的代码快照)。控制永远不会到达这个断点。您必须更新您的 JAR 才能控制这些断点。
解决方案:如果远程调试经常发生这种情况,您可以通过用构建项目后获得的新 JAR 替换旧 JAR 来解决您的问题。