【问题标题】:gcc: what's the difference between "-g" and "-ggdb"?gcc:“-g”和“-ggdb”有什么区别?
【发布时间】:2016-10-24 09:47:55
【问题描述】:

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

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

谢谢。

【问题讨论】:

标签: linux debugging gdb option difference


【解决方案1】:

编译后的程序应该存储在某个地方,以便调试器(此处为 GDB)查看并跟踪。

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

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

COFF - 通用对象文件格式 - 在类 UNIX 系统上。

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

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

等等。

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

根据文档,基本区别是: 选项“g”以特定系统的本机格式提供调试数据。 选项“-ggdb”有点丰富和昂贵。以最具表现力的格式提供调试数据。

【讨论】:

    【解决方案2】:

    我建议您阅读此documentation 和此topic

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 2010-09-15
      • 2011-08-16
      • 2017-07-16
      相关资源
      最近更新 更多