c++ - gdb : what is a symbol-file used for debugging

标签 c++ debugging makefile gdb

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

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

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

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

3-如果我们有一个巨大的源代码及其makefile,我们如何确定当我们执行“make install”时使用哪种方法

我看过这个thread但我更困惑了!

最佳答案

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

关于c++ - gdb : what is a symbol-file used for debugging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965170/

相关文章:

linux - 在 poky 构建中运行自定义 bitbake 时出现 do_install 错误

linux - 在命令行中将 CFLAGS 传递给 Makefile

c++ - 无法在析构函数上使用 virtual 关键字

c++ - 如何避免在循环内破坏和重新创建线程?

java - Eclipse:内联断点

c# - 隐藏消息框并给出错误

c++ - makefile 中的条件变量

C++ 默认参数乱序?

C++ 队列 - 简单示例

ios - 如何检测 View 层次结构中的哪个 View 处理触摸事件?