我遇到的问题之一是我的 jar 文件和我的源文件不匹配。
我想:
- 当源代码和二进制文件不匹配时收到通知(我认为 Visual Studio 可以做这样的事情......)
- 不是按行设置断点,而是按功能设置断点。例如,在函数 foo() 的入口处设置断点。
我主要使用eclipse;所以eclipse的解决方案将非常受欢迎,但任何IDE(或命令行调试器)都可以。谢谢!
开发时只需使用并链接到.class
IDE 保存的文件。
如果您的项目开始增长到链接到一个非常有用的地步,那么.jar
您最好将 jar 视为单独的项目。
使用方法断点而不是行断点。可以将它们设置为在进入/退出方法时停止。您可以通过双击包含方法声明的行中的左侧编辑器来获取它们。
转到 Eclipse 中的项目选项卡,然后
调试信息仅限于源文件中的行号...我同意警告行错误会很好,但这需要 jar 中的元数据比我认为可用的更多...
您可能需要考虑通过更改构建过程来应对挑战。这并不能完全回答您的问题,但希望它能为您提供解决潜在问题的策略。
当您生成用于部署的 jar 时,还要使用二进制 AND 源生成一个 jar。要调查实时服务器上堆栈跟踪的源代码,请在 eclipse 中设置一个单独的项目,并将二进制 + 源 jar 放在类路径中。您可能必须将源代码位置显式设置回同一个 jar(尽管我认为 Eclipse 会自动执行此操作)。
然后,您只需在进行部署时将二进制 + 源 jar 的副本添加到工作区中的适当位置(最好使用部署脚本)。
如果它是您的服务器,您甚至可能需要考虑将二进制 + 源 jar 部署到实时服务器 - 这样您将始终能够获取源。