gdb :什么是用于调试的符号文件

sal*_*ali 5 c++ debugging gdb makefile

我对编译期间生成并用于调试的文件感到非常困惑。

我知道在编译代码时有两种方法可以存储调试信息。一种是将信息存储在一个单独的文件中,而不是通常带有 .sym 扩展名的可执行文件(或目标文件))

1-我不知道其他方法是什么。(以及哪个更常用)

2-首先什么是符号文件?(比它保持调试信息更详细一点)

3-如果我们得到一个包含makefile的巨大源代码,我们如何确定在执行“make install”时使用了哪种方法

我看过这个帖子,但我更困惑了!

ion*_*med 4

  1. 另一种方法是将所有调试信息包含在可执行文件本身中。
  2. 它保留诸如函数名称之类的内容。当源文件被编译时,它被转换为操作码,并且所有函数名称都被转换为指针。例如,当您使用 gdb 时,您可以break main在 main 函数上中断。当你遇到段错误时,它也很有用,你只需输入bt,它就会给出带有完整函数名称的回溯。
  3. 您只需打开 Makefile 并搜索安装目标即可。-g调试信息级别使用 gcc或标志设置-gN