Ubuntu 20.04安装libc6-dbg后/usr/lib/debug无相关文件的问题问询
Ubuntu 20.04 为libc配置调试符号(适配gperftools/perf)
问题场景
执行sudo apt-get install libc6-dbg成功安装后,/usr/lib/debug目录下未找到任何libc相关调试文件,重装后问题依旧,且libc版本(2.31-0ubuntu9.15)与系统匹配。已通过以下命令定位到隐藏目录下的.debug文件:
$ dpkg -L libc6-dbg | grep $(readelf -n /lib/x86_64-linux-gnu/ld-2.31.so | grep 'Build ID' | awk '{print $3}' | cut -c 3-) /usr/lib/debug/.build-id/c9/a47e328eb2f1f41bcbcf31f9c11b9e17aa2a83.debug
解决方法
方法1:依赖工具自动识别(推荐)
gperftools、perf这类性能分析工具默认支持通过Build ID查找调试符号,只要/usr/lib/debug/.build-id目录存在且权限正常,工具会自动关联到对应的.debug文件,无需额外操作,直接运行分析命令即可。
方法2:手动创建符号链接(可选)
若工具无法自动识别,可手动在/usr/lib/debug下创建对应libc文件的符号链接:
- 确认系统libc文件路径,例如
/lib/x86_64-linux-gnu/libc-2.31.so - 创建指向.debug文件的符号链接:
sudo ln -s /usr/lib/debug/.build-id/c9/a47e328eb2f1f41bcbcf31f9c11b9e17aa2a83.debug /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.31.so.debug
- 同理处理ld.so的调试符号:
sudo ln -s /usr/lib/debug/.build-id/c9/a47e328eb2f1f41bcbcf31f9c11b9e17aa2a83.debug /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.31.so.debug
验证配置
运行gdb /bin/bash,输入info sharedlibrary,查看libc条目对应的调试符号列是否显示Yes,确认符号已成功加载。
内容的提问来源于stack exchange,提问作者CodeMonkey
相关产品推荐
相关产品推荐

