1
34
默认的编译选项不包括调试信息,您必须明确地告诉编译器包含调试信息。大多数人忽略它有几个原因:
正如约翰指出的,Java字节码今天不再优化。因此,两种情况下类文件的输出是相同的(只有具有调试信息的类文件才会更大)。代码在运行时在JIT中进行优化,使运行时能够为CPU、内存(数量和布局)等优化代码。 上面提到的5%的惩罚是当您运行代码并添加命令行选项以允许远程调试器附加到进程时。如果不启用远程调试,则不会受到惩罚(类加载除外,但只会发生一次)。 |
2
0
可能是安装尺寸。调试信息增加了jar文件的开销,而sun可能不喜欢这些文件。 我最近不得不研究一个Java Web启动问题——没有可用的调试信息——所以添加完整的跟踪到Java控制台并下载源代码帮助了一些代码,但是代码相当混乱,所以我只需要调试构建。 这个 JDK 应该用所有调试信息编译! |
Dominique · 如何解释Windbg“x/2”结果中的双条目? 6 年前 |
Yichen · 在gdb中找不到在.bss节中定义的变量名 7 年前 |
knguyen · 此模块的调试信息中缺少源信息 10 年前 |