【问题标题】:Java Breakpoints not firing after instrumenting class?检测类后没有触发Java断点?
【发布时间】:2023-03-28 11:25:01
【问题描述】:

在我使用自定义 Java 代理检测某些类后,断点不再在 Intellij IDEA 中触发。我知道当检测类时,会删除断点(至少是 Hotspot JVM)......但是我尝试在检测完成后在代码中插入新的断点,它们也不会触发。如何克服这个问题?

更新:方法断点触发得很好,所以我认为在检测之后,行不匹配,这就是断点设置在错误位置的原因(?),这就是它们没有触发的原因。但我尝试在班级的每一行都设置行断点,但没有一个被触发。

【问题讨论】:

  • 你确定你在JVM中的源代码和你的编辑器是一样的吗?如您确定已安装 JVM 的最新更改?

标签: java intellij-idea instrumentation javaagents


【解决方案1】:

没有命中断点的原因有多种,例如错误的运行时 JVM 版本或从生成的类中删除了调试信息。

但是,没有命中断点通常意味着.java.class 不同步。也就是说,编译后的代码与源代码并不完全相同。

断点由行号设置,因此如果源代码和编译代码不同步并且行号不匹配,断点可能指向的行号不是远程系统上的有效断点候选者例如,一个不可执行的。在这种情况下,不会设置断点,并且似乎被跳过了。

您可以在编译/构建之前先尝试清理项目

【讨论】:

    猜你喜欢
    • 2012-02-06
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多