# debug symbol

# 基本概念

调试符号(Debug Symbols) 是一种特殊类型的符号,附加在目标文件(例如共享库或可执行文件)的符号表中。调试符号允许符号调试器从二进制文件的源代码中获取信息,例如标识符的名称(包括变量和例程)。

常见的调试符号类型有:CodeView符号、COFF(Common Object File Format)符号、DBG符号、SYM符号、PDB(Program Database)符号和导出符号

CodeView 是一种调试信息格式,用于 Windows 平台。它包含了函数、变量、行号等信息,其通常与 COFF 格式一起使用。

COFF(Common Object File Format)符号是一种通用的目标文件格式,用于存储二进制文件的符号表和包括函数、变量、行号、类型等调试信息。

DBG 符号是 Windows NT 操作系统使用的一种调试信息格式。

SYM 符号是 Windows NT 操作系统使用的一种调试信息格式。

PDB(Program Database)符号是 Windows NT 操作系统使用的一种调试信息格式,它包含程序的符号、类型和源代码信息。

导出符号是 Windows NT 操作系统使用的一种调试信息格式,它包含程序的符号、类型和源代码信息。

# gcc -g参数添加的调试信息

-g 选项时添加到目标文件中的一些调试符号有:

函数和变量名称,这对于在调试器中查看变量值、跟踪函数调用以及定位问题非常有帮助。

行号信息,会将源代码行号信息添加到目标文件中,在调试器中可以查看源代码的上下文,从而更容易定位错误。

类型信息,目标文件中包含了数据类型的信息。这对于检查变量的类型、解决类型不匹配的问题很有用。

宏定义,在编译时使用 -g宏定义也会被添加到目标文件中。对于跟踪宏的展开和调试宏相关的问题很有帮助。

# reference

1.https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html (opens new window)