我在linux下工作,在我看来“-g”和“-ggdb”的效果差别不大。我只发现使用“-ggdb”会生成二进制几个更大的字节。
那么gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么?
感谢。
答案 0 :(得分:2)
我建议您阅读此documentation和此topic。
答案 1 :(得分:2)
编译后的程序应该存储在某些地方,对于调试器(这里是GDB)来调查并遵循。
这在技术上称为"调试数据格式" 。
一些普遍接受的调试数据格式是(还有一些):
COFF - 通用目标文件格式 - 在类UNIX系统上。
PE / COFF - Portable Executable - 在Windows上非常有名,通常dotnet使用它。
DWARF - 在类UNIX系统上很流行。
等。
您在问题中询问的GDB选项与生成这些调试数据格式有关。
基于文档,功能差异是: 选项" g"以特定系统的本机格式提供调试数据。 选项" -ggdb"有点丰富和昂贵。以最具表现力的格式提供调试数据。