Mar*_*sse 6 java debugging intellij-idea
我正在使用 IntelliJ 来调试 Java 程序。在我目前的情况下,这恰好是 IntelliJ 本身——调试其中的问题——但过去其他代码也出现过类似的问题。
在单步执行时,在单步执行方法的某个时刻,IntelliJ 将不再显示正在执行的代码。当源代码不可用时,我习惯于单步执行反编译的字节代码,但在这种情况下,IntelliJ 不会显示任何内容——没有源代码,没有字节代码,什么也没有。当从RemoteExternalSystemProjectResolverImpl
进入时会发生这种情况GradleProjectResolver
。
非常可疑的是,当从来自UrlClassLoader
, 的类步入来自 的类时,问题就发生了PluginClassLoader
。
我知道,当字节码来自性质未知的类加载器时,调试器在将正在执行的字节码与源代码关联起来时会遇到问题,因为没有明确定义的机制。请注意,我完全可以单步执行反编译代码。(即使单步执行字节码指令也可以,但据我所知 IntelliJ 不支持这一点)。我不确定如何自己提供匹配的源代码,所以我宁愿查看字节码以确保我没有看到虚假信息。
我不明白的是为什么 IntelliJ 不会向我显示该字节码。与源代码不同,字节码是可用的,因为毕竟它现在正在执行。
我应该怎么做才能让 IntelliJ 显示正在执行的字节码?
更新:重现步骤
Ste*_*fan -3
您可能正在调试一个在没有调试信息的情况下编译的库。为此,Java 编译器具有命令行选项“-g”。
我假设您不明白字节码是什么。这是一堆数值,无法以与源代码类似的方式显示。您将无法读取字节码。
你通常看到的是反编译的字节码,这取决于调试信息的存在。
归档时间: |
|
查看次数: |
884 次 |
最近记录: |