如何在Java代码不同步时调试它?

时间:2012-09-22 00:18:01

标签: java eclipse

我遇到的一个问题是我的jar文件和我的源文件不匹配。

我想:

  1. 当源和二进制文件不匹配时通知(我认为Visual Studio可以做这样的事情......)
  2. 不是按行设置断点,而是按功能设置断点。例如,在函数foo()的条目处设置断点。
  3. 我主要使用eclipse;因此,对Eclipse的解决方案非常感激,但任何IDE(或命令行调试器)都可以。 谢谢!

4 个答案:

答案 0 :(得分:4)

开发时只需使用并链接到IDE保存的.class文件。

如果您的项目开始增长到链接到.jar非常有用的点,那么最好将jar视为单独的项目。

答案 1 :(得分:3)

使用method breakpoints代替换行符。可以将它们设置为在进入/退出方法时停止。您可以通过在包含方法声明的行中双击左侧编辑器来获取它们。

答案 2 :(得分:1)

调试信息仅限于源文件中的行号...我确实认为线路错误的警告会很好,但这需要jar中比我想象的更多的元数据。 ..

您可能需要考虑通过更改构建过程来应对挑战。这并不能完全回答你的问题,但希望它会给你一个解决潜在问题的策略。

生成用于部署的jar时,还会生成带有二进制AND源的jar。要调查实时服务器上堆栈跟踪的源代码,请在eclipse中设置一个单独的项目,并将二进制+源jar放在类路径上。您可能必须将源代码位置显式设置回同一个jar(尽管我认为Eclipse会自动执行此操作)。

然后,您只需在部署时将二进制+源jar的复制添加到工作区中的适当位置(最好使用部署脚本)。

如果它是您的服务器,您可能甚至想要考虑将二进制+源jar部署到实时服务器 - 这样您就可以始终获得源代码。

答案 3 :(得分:1)

转到Eclipse中的Project选项卡,然后

  • 点击清洁:项目 - >清理......
  • 自动点击构建:项目 - >自动构建