- GNU 调试器有用资源
- GDB - 快速指南
- GDB - 资源
GDB - 调试符号
调试符号表将已编译二进制程序中的指令映射到它们的变量、函数或源代码中的行。此映射可以类似于
程序指令 ⇒ 项目名称、项目类型、原始文件、定义的行号。
符号表可以嵌入到程序中或作为单独的文件存储。因此,如果你计划调试你的程序,那么需要创建一个符号表,其中包含调试程序所需的信息。
我们可以推断出有关符号表的以下事实
符号表适用于特定版本的程序 - 如果程序发生变化,则必须创建一个新表。
与零售(非调试)版本相比,调试版本通常更大并且运行得更慢;调试版本包含符号表和其他辅助信息。
如果你希望调试并非自己编译的二进制程序,则必须从作者那里获取符号表。
为了让 GDB 能够逐行读取符号表中的所有信息,我们需要以稍有不同的方式进行编译。通常我们会以如下方式编译我们的程序
gcc hello.cc -o hello
要完成此操作,我们需要使用 -g 标志进行编译,如下所示
gcc -g hello.cc -o hello
广告