gcc:“ - g”和“-ggdb”之间有什么区别?

时间:2016-10-24 09:47:55

标签: linux debugging gdb option difference

我在linux下工作,在我看来“-g”和“-ggdb”的效果差别不大。我只发现使用“-ggdb”会生成二进制几个更大的字节。

那么gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

我建议您阅读此documentation和此topic

答案 1 :(得分:2)

编译后的程序应该存储在某些地方,对于调试器(这里是GDB)来调查并遵循。

这在技术上称为"调试数据格式"

一些普遍接受的调试数据格式是(还有一些):

COFF - 通用目标文件格式 - 在类UNIX系统上。

PE / COFF - Portable Executable - 在Windows上非常有名,通常dotnet使用它。

DWARF - 在类UNIX系统上很流行。

等。

您在问题中询问的GDB选项与生成这些调试数据格式有关。

基于文档,功能差异是: 选项" g"以特定系统的本机格式提供调试数据。 选项" -ggdb"有点丰富和昂贵。以最具表现力的格式提供调试数据。