【问题标题】:Check if Java bytecode contains debug symbols检查 Java 字节码是否包含调试符号
【发布时间】:2011-03-09 22:02:00
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: java bytecode


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • javap -l path/to/Class, 其中-l 打印出行和局部变量表
      猜你喜欢
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2014-12-27
      • 1970-01-01
      相关资源
      最近更新 更多