gpt4 book ai didi

java - 如何让Java编译器在编译后的代码中生成行号

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:02 24 4
gpt4 key购买 nike

我有一个名为 A.class 的 hello world 程序。它是使用命令 javac A.java 编译的。它所做的只是打印“hello world”

接下来,我使用 javac -g A.java 进行编译。我期待看到行号,但看不到。知道发生了什么吗?

我确实看到 javac 编译的 .class 文件和 javac -g 编译的 .class 文件之间的某些特殊字符有非常小的差异。但是我看不到任何行号。

我对此的好奇是因为我想知道行号对性能有什么样的影响。其次,我想知道 log4j 等如何维护日志记录的行号。谢谢。

最佳答案

编译命令很好,-g 确实打开了调试信息的生成。顺便说一句:行号是默认生成的,需要 -g:none 或类似的东西来关闭它。

缺少的是一种有意义地检查生成的 .class 文件的方法,类似于工具使用它的方式。尝试:

$ javap -l -c A.class

-l 打开行号表的打印。-c 打开反汇编字节码指令的打印(可能很有趣,因为行号表将源行号与字节码指令相关联)。

关于java - 如何让Java编译器在编译后的代码中生成行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com