【发布时间】:2016-10-24 09:47:55
【问题描述】:
我在linux下工作,在我看来“-g”和“-ggdb”的效果没有太大区别。我只发现使用“-ggdb”会生成大几个字节的二进制文件。
那么gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么?
谢谢。
【问题讨论】:
标签: linux debugging gdb option difference
我在linux下工作,在我看来“-g”和“-ggdb”的效果没有太大区别。我只发现使用“-ggdb”会生成大几个字节的二进制文件。
那么gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么?
谢谢。
【问题讨论】:
标签: linux debugging gdb option difference
编译后的程序应该存储在某个地方,以便调试器(此处为 GDB)查看并跟踪。
这在技术上称为“调试数据格式”。
一些普遍接受的调试数据格式(还有更多):
COFF - 通用对象文件格式 - 在类 UNIX 系统上。
PE/COFF - Portable Executable - 在 Windows 上非常有名,通常 dotnet 使用它。
DWARF - 在类 UNIX 系统上很流行。
等等。
您在问题中提出的 GDB 选项与生成这些调试数据格式有关。
根据文档,基本区别是: 选项“g”以特定系统的本机格式提供调试数据。 选项“-ggdb”有点丰富和昂贵。以最具表现力的格式提供调试数据。
【讨论】:
我建议您阅读此documentation 和此topic。
【讨论】: