检查 Java 字节码是否包含调试符号
我想知道如何检查已编译的Java类是否包含调试符号。问题是我从 ant 编译一个应用程序,debug=“on”,但是一个特定的 JVM 抛出了一个异常:它说缺少调试符号。
谢谢。
我想知道如何检查已编译的Java类是否包含调试符号。问题是我从 ant 编译一个应用程序,debug=“on”,但是一个特定的 JVM 抛出了一个异常:它说缺少调试符号。
谢谢。
如果在类文件上运行,您将看到该文件中存在的调试信息。javap -v
值得编译一个具有不同选项设置的简单测试类,并使用 查看结果。-g
javap
如果您需要确切地知道javap
如何呈现信息,那么最好在Java安装中尝试一下。javap
命令的输出可能因不同的 Java 版本而异。
包含调试信息的类文件将包含的最重要的东西是 LineNumberTable,它将字节码指令映射到源行号,以及 LocalVariableTable,它告诉调试器在执行期间局部变量的位置,包括方法的参数驻留在 VM 中。