【发布时间】:2011-03-09 22:02:00
【问题描述】:
我想知道如何检查已编译的 Java 类是否包含调试符号。问题是我使用 debug="on" 从 ant 编译应用程序,但是特定的 JVM 抛出异常:它说缺少调试符号。
谢谢。
【问题讨论】:
我想知道如何检查已编译的 Java 类是否包含调试符号。问题是我使用 debug="on" 从 ant 编译应用程序,但是特定的 JVM 抛出异常:它说缺少调试符号。
谢谢。
【问题讨论】:
如果您在类文件上运行javap -v,您将看到文件中存在的调试信息。
值得编译一个具有不同-g 选项设置的简单测试类并使用javap 查看结果。
如果您需要确切地知道javap 是如何呈现信息的,最好在您的Java 安装中尝试一下。 javap 命令的输出可能因不同的 Java 版本而异。
【讨论】:
带有调试信息的类文件将包含的最重要的东西是 LineNumberTable 将字节码指令映射到源行号和 LocalVariableTable 告诉调试器您的局部变量(包括方法的参数)在执行期间驻留在 VM 中的位置。
【讨论】:
javap -l path/to/Class, 其中-l 打印出行和局部变量表