openSUSE Tumbleweed中GDB启动调试反复下载调试信息如何解决
解决openSUSE Tumbleweed下GDB重复下载调试符号方案
- 第一步:启用官方调试信息仓库
执行命令:
该仓库内的调试包版本会和Tumbleweed滚动升级的系统包版本保持同步,不会出现升级后调试信息失效的问题。sudo zypper modifyrepo --enable repo-debug repo-debug-update - 第二步:安装对应依赖的调试信息包
openSUSE调试包遵循[软件包名]-debuginfo的命名规则,你示例中提到的三个库对应的安装命令为:
如果不知道动态库对应的包名,可执行sudo zypper install libFLAC8-debuginfo libspeex1-debuginfo libopus0-debuginfozypper se --provides /lib64/xxx.so.x查询对应包名后,再安装对应debuginfo包即可。安装调试包时系统会自动创建/usr/lib/debug目录并写入调试符号文件,和GDB默认的查找路径匹配,无需额外修改debug-file-directory配置。 - 第三步:(可选)彻底关闭GDB自动下载调试符号功能
如果你不需要在线调试符号,可直接禁用GDB的debuginfod自动下载特性,永久避免每次启动调试时的下载耗时:
编辑用户目录下的.gdbinit配置文件(不存在则新建),加入如下配置:
保存后重启GDB即可生效。set debuginfod enabled off
如果后续系统滚动升级后出现调试信息不匹配的情况,执行sudo zypper up --with-debuginfo即可同步升级所有已安装的调试信息包,保持和系统依赖版本一致。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

