# 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)