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

28

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

谢谢。

2个回答

30

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

值得一提的是,编译一个简单的测试类,并使用不同的-g选项设置来查看用javap输出的结果,这样做会有所帮助。

如果你需要确切了解javap如何呈现信息,最好还是在你的Java安装中直接尝试。javap命令的输出结果可能因Java版本而异。


17

具有调试信息的类文件最重要的内容是LineNumberTable,它将字节码指令映射到源代码行号,以及LocalVariableTable,它告诉调试器在执行期间本地变量(包括方法参数)在虚拟机中存储的位置。


11
javap -l path/to/Class,其中-l打印出行号和局部变量表 - stivlo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接