我对编译期间生成并用于调试的文件感到非常困惑。
我知道编译代码时有两种存储调试信息的方法。一种是将信息存储在可执行文件(或目标文件)之外的单独文件中,通常带有 .sym 扩展名)
1-我不知道其他方法是什么。 (以及哪一种更常用)
2- 首先什么是符号文件? (比保留调试信息更详细一点)
3-如果我们有一个巨大的源代码及其makefile,我们如何确定当我们执行“make install”时使用哪种方法
我看过这个thread但我更困惑了!
最佳答案
- 另一种方法是将所有调试信息包含在可执行文件本身中。
- 它保留函数名称等内容。当源文件被编译时,它被转换为操作码,并且所有函数名称都被转换为指针。例如,当您使用 gdb 时,您只需
break main
即可在 main 函数上中断。当您遇到段错误时,它也很有用,您只需输入bt
,它就会给出带有完整函数名称的回溯。 - 您只需打开 Makefile 并搜索安装目标即可。调试信息级别使用 gcc
-g
或-gN
标志设置。
关于c++ - gdb : what is a symbol-file used for debugging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965170/