本文介绍: 如前所述,如果将debuginfo文件直接放到/usr/lib/debug目录(或者通过set-debug-file-directory命令设置的根目录)下,也是可以的,但文件目录的组织结构必须和运行时的目录组织结构一样,这个地方有一个需要注意的地方,特别是对于so文件,在debug-root-directory目录下寻找对应的debuginfo文件时,和文件实际所在的位置不一定完全一致,而要看连接器能够找到的路径,即ldd所显示的路径。每个版本的gcc和标准库版本的对应关系可以在官方文档中找到。
参考部分
查看源码是否编译时有-g
-g编译的可执行性程序多了很多.debug开头的段
而没有加-g的没有
调试信息和符号表
这里说的调试信息指的是 debug_* 相关信息,符号表是指 symtab 和 dynsym。gdb 对这两种信息进行解析和加工,得到的信息在 gdb 内部统称为符号表。
在 gdb 中加载 debug 文件/符号表
将 debug 文件放入 “.debug” 文件夹
通过 gdb 命令 set debug-file-directory directories
GCC的gcc和g++区别
指定gcc/g++,glibc的版本进行编译
指定gcc/g++的版本
指定glibc的和ld版本
apt安装后软件所在路径
gdb寻找单独的debug文件的路径
gdb带源码调试libc(gdb寻找源码的路径)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。