Intellij 12和Tomcat:调试到依赖jar的源代码

时间:2014-01-29 18:26:17

标签: java tomcat intellij-idea

现在这个问题比以往任何时候都让我感到沮丧,因为我完全依赖调试器来识别一个棘手的bug。这是我的环境

  • 用Java编写的Web应用程序
  • 在Tomcat 7中打包并部署为war文件并在Windows中运行
  • IntelliJ 12,远程调试Tomcat

我必须经常在我的web模块的jar文件中包含的代码中导航并设置断点(不是项目的一部分)。我在本地检查了所需的jar文件源代码并“附加”了代码,但我有以下问题

  1. 很多时候,我看不到源代码 - 我只看到方法签名。这种情况有时会在重新部署后发生,但有时甚至会发生。即使在多次尝试附加源代码之后,我也看不到源代码
  2. 有时即使我看到源代码(即附加成功),调试器也会以一种有趣的方式运行,即看起来即使我看到的源是正确的,IntelliJ也会通过其他地方运行代码。所以我想念断点,有时会经过错误的if-else等分支。
  3. 我尝试使缓存无效并重新启动,但徒劳无功。当我查看Intellij系统缓存时,我很惊讶地看到了库的几个非常旧的副本,甚至是同一个库的相同快照的几个副本,都在缓存中。因此,在删除系统缓存中的陈旧副本时,缓存无效似乎没有任何效果。

    其他任何有过一个或多个问题的人能否解释他们如何解决这些问题?还有什么在执行“无效缓存”时会发生什么?我可以安全地摆脱所有旧的jar文件吗?

0 个答案:

没有答案