GDB - 调试符号



调试符号表将已编译二进制程序中的指令映射到它们的变量、函数或源代码中的行。此映射可以类似于

  • 程序指令 ⇒ 项目名称、项目类型、原始文件、定义的行号。

符号表可以嵌入到程序中或作为单独的文件存储。因此,如果你计划调试你的程序,那么需要创建一个符号表,其中包含调试程序所需的信息。

我们可以推断出有关符号表的以下事实

  • 符号表适用于特定版本的程序 - 如果程序发生变化,则必须创建一个新表。

  • 与零售(非调试)版本相比,调试版本通常更大并且运行得更慢;调试版本包含符号表和其他辅助信息。

  • 如果你希望调试并非自己编译的二进制程序,则必须从作者那里获取符号表。

为了让 GDB 能够逐行读取符号表中的所有信息,我们需要以稍有不同的方式进行编译。通常我们会以如下方式编译我们的程序

gcc hello.cc -o hello 

要完成此操作,我们需要使用 -g 标志进行编译,如下所示

gcc -g hello.cc -o hello 
广告