我在Linux下工作,在我看来,“-g”和“-ggdb”的效果没有太大区别。我只发现使用“-ggdb”将生成比大几个字节的二进制文件。
那么gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么?
谢谢。
最佳答案
编译后的程序应存储在某个地方,以供调试器(此处为GDB)研究并跟踪。
这在技术上称为“调试数据格式” 。
一些普遍接受的调试数据格式是(还有更多):
COFF-通用目标文件格式-在UNIX之类的系统上。
PE/COFF-便携式可执行文件-在Windows上很出名,通常是dotnet使用它。
DWARF-在UNIX之类的系统上流行。
等等..
您在问题中询问的GDB选项与生成这些调试数据格式有关。
根据文档编制,其基本区别是:
选项“g”以特定系统的 native 格式提供调试数据。
选项“-ggdb”有点丰富和昂贵。以可用的最具表现力的格式提供调试数据。