1

默认情况下,gcc会将符号表添加到可执行文件中,因此gdb将获得可读的堆栈跟踪。

-ggdb1手册页中的选项文档gcc说:

级别 1 产生的信息最少,足以在您不打算调试的程序部分中进行回溯。这包括函数和外部变量的描述,但没有关于局部变量的信息,也没有行号。

gcc...在我看来,这与在没有任何调试相关参数的情况下调用相同。但是显然发出了额外的符号(.debug_frame, .debug_str, .debug_loc)。

-ggdb1那么到底有什么区别,与简单地不剥离可执行文件相比,编译有什么好处?

4

1 回答 1

0

查找dwarfdump实用程序(libdwarf 的一部分)并查看在这些部分中发出了哪些调试信息。而不是自己决定使用 1 级调试信息编译和不剥离可执行文件之间是否有任何区别。DWARF 规范也是免费提供的。

于 2010-10-11T06:35:11.160 回答