【问题标题】:Intellij IDEA Remote Debug invalid breakpointsIntellij IDEA Remote Debug 无效断点
【发布时间】:2017-12-28 07:43:34
【问题描述】:

大家好!

我正在尝试使用 Intellij IDEA Remote Debug 调试在 tomcat 7 上运行的 java8 应用程序。 问题是当我在idea中运行调试时,我的所有断点都设置为无效并显示消息:

行号信息在类pathToClass

中不可用

这是我在 catalina.bat 中的 JAVA_OPTS 设置:

set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 %JSSE_OPTS%"

Here is my remote debug settins from IDEA

【问题讨论】:

  • 我感觉你调试的源代码和tomcat中运行的代码不一样。你能尝试用你拥有的东西进行新的部署,然后再次尝试检查。基本上,例如,如果您有 3 行连续的代码,并且在每行上放置 3 个断点,如果其中一行显示带有 X 的断点图标,则您的代码与部署的代码不匹配Tomcat。
  • @sfat 刚刚重新部署,仍然一样。我的断点都未启用(
  • 您的部署是否使用调试信息on编译? (无论如何,方法断点都应该起作用)
  • @ThorbjørnRavnAndersen 你能解释一下这是什么意思吗?方法断点很好用
  • 断点是不是被你误禁用了,可以在intelliJ的调试器窗口中查看吗?

标签: java tomcat intellij-idea


【解决方案1】:

我遇到了同样的问题。但是接受的答案并没有为我解决。就我而言,根本原因是 clover gradle 插件造成的干扰。

为了调试问题,我将A.java类的源代码与A.class的反编译代码进行了比较。反编译的版本有一堆clover生成的垃圾。我刚刚从项目中删除了三叶草插件,删除了build文件夹,使缓存失效并重新启动了IDEA。我添加了断点并在调试中运行它。瞧!这次成功了。

你的情况可能不是三叶草;它可能是别的东西。但是,这个断点问题很可能是由源代码和编译类之间的不匹配引起的。最好的验证方法是将反编译的类与其源代码进行比较。

【讨论】:

  • 谢谢。这确实是我的问题。
【解决方案2】:

在构建过程中的某一时刻,您的 Java 代码会使用 javac 编译器(或类似的编译器)编译成类。编译器有一个选项可以包含您目前显然没有启用的调试信息(包括行号)。

对于普通的javac 添加-g

对于 ant 将 debug="true" 添加到 javac 任务。

对于 Maven,maven-compiler-plugin 的默认配置添加了调试信息,因此不必撤消显式设置。

【讨论】:

    【解决方案3】:

    在构建过程中的某一时刻,您的 Java 代码被编译成 带有 javac 编译器(或等效的东西)的类。有一个 编译器选项以包含调试信息(包括行 数字),您目前显然没有启用。如何 你编译你的代码吗? ——托尔比约恩·拉文·安徒生

    在 javac 中添加 debug="true" 选项来解决这个问题。 感谢所有帮助过的人。

    【讨论】:

    • 把这个作为评论放在接受的答案下面:)
    【解决方案4】:

    这可能是由缩小造成的。转到您的 Gradle 并设置:

    Enabled=false
    buildShrinkResources=false
    

    然后再次同步和调试。

    【讨论】:

      【解决方案5】:

      刚刚遇到这样的问题,线路与远程服务器不同步,尽管连接已建立(我能够在 IDEA 中看到线程列表)。

      我尝试的第一件事是不在语句上设置断点,而是在整个方法上设置断点。调试到了断点,但在一个奇怪的地方(关闭花括号)。

      我所要做的就是从文件开头删除一个空行,然后一切都与远程对齐。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-22
        • 1970-01-01
        • 2012-07-20
        • 2017-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-10
        相关资源
        最近更新 更多