11

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

我想:

  1. 当源代码和二进制文件不匹配时收到通知(我认为 Visual Studio 可以做这样的事情......)
  2. 不是按行设置断点,而是按功能设置断点。例如,在函数 foo() 的入口处设置断点。

我主要使用eclipse;所以eclipse的解决方案将非常受欢迎,但任何IDE(或命令行调试器)都可以。谢谢!

4

4 回答 4

4

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

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

于 2012-09-22T00:29:19.727 回答
3

使用方法断点而不是行断点。可以将它们设置为在进入/退出方法时停止。您可以通过双击包含方法声明的行中的左侧编辑器来获取它们。

于 2012-09-22T05:19:32.797 回答
3

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

  • 点击清理:项目->清理...</li>
  • 点击自动构建:项目->自动构建
于 2017-05-05T06:28:08.903 回答
1

调试信息仅限于源文件中的行号...我同意警告行错误会很好,但这需要 jar 中的元数据比我认为可用的更多...

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

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

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

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

于 2012-09-22T01:34:28.443 回答