检查 Java 字节码是否包含调试符号

2022-09-01 15:41:41

我想知道如何检查已编译的Java类是否包含调试符号。问题是我从 ant 编译一个应用程序,debug=“on”,但是一个特定的 JVM 抛出了一个异常:它说缺少调试符号。

谢谢。


答案 1

如果在类文件上运行,您将看到该文件中存在的调试信息。javap -v

值得编译一个具有不同选项设置的简单测试类,并使用 查看结果。-gjavap

如果您需要确切地知道javap如何呈现信息,那么最好在Java安装中尝试一下。javap 命令的输出可能因不同的 Java 版本而异。


答案 2

包含调试信息的类文件将包含的最重要的东西是 LineNumberTable,它将字节码指令映射到源行号,以及 LocalVariableTable,它告诉调试器在执行期间局部变量的位置,包括方法的参数驻留在 VM 中。


推荐