You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下gdb调试helloworld出现CRC mismatch警告如何解决

解决方案

原因说明

该警告是系统中存储的ld-2.31.so调试信息文件与实际运行的ld-linux-x86-64.so.2动态链接器文件CRC校验不匹配导致的,通常由多架构(i386/amd64)包版本不一致、调试符号包安装错误触发。

解决步骤

  • 第一步:卸载所有不匹配的libc相关冲突包
    若卸载libc6-amd64:i386时提示依赖lib64ncurses系列包失败,先执行sudo apt purge lib64ncurses*:i386,再执行以下命令:
    sudo apt purge libc6-amd64:i386 libc6-dev-amd64 libc6-dbg:*
    
  • 第二步:修复系统依赖
    sudo apt --fix-broken install
    sudo apt autoremove
    
  • 第三步:安装对应架构的正确glibc调试包
    针对x86_64架构的Ubuntu 20.04,直接安装amd64版本的对应包即可:
    sudo apt install libc6:amd64 libc6-dev:amd64 libc6-dbg:amd64
    
  • 第四步:校验版本一致性
    执行以下命令确认两个文件版本匹配:
    # 查看实际运行的动态链接器版本
    /lib64/ld-linux-x86-64.so.2 --version
    # 查看调试文件归属的包版本
    dpkg -S /lib64/ld-2.31.so
    
    输出版本均为2.31且归属包为libc6:amd64即修复完成。

临时绕过方案

如果你不需要调试glibc本身的代码,不需要调试动态链接过程,可直接在gdb中关闭该警告,不影响自身编写程序的调试:
在gdb交互界面执行:

set debug-file-directory /usr/lib/debug

将上述配置写入~/.gdbinit文件可永久生效。

内容的提问来源于stack exchange,提问作者twisted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:15:00