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

如何让gdb使用自定义编译glibc对应的动态链接器?

GDB调试自定义编译glibc程序的配置方法

你遇到的报错本质是GDB默认优先调用系统路径下的运行时链接器,无法识别你自定义glibc新增的SHIM版本符号,可通过以下方案解决:

方案1:GDB交互界面内临时配置

启动GDB加载目标程序后,先执行两条配置命令再运行程序即可:

  • 执行 gdb ./my_test 进入GDB交互界面
  • 执行set solib-absolute-prefix /local/home/me/glibc-build/:指定GDB优先从你的自定义glibc构建目录加载动态链接库,而非系统默认路径
  • 执行set interp-system-prefix /local/home/me/glibc-build/:强制GDB调用你自定义路径下的运行时链接器,绕过系统默认的/lib64/ld-linux-x86-64.so.2
  • 执行run启动程序即可正常调试

方案2:命令行一键启动免配置

如果不想每次进入GDB都手动输入配置,可以直接把配置参数写在启动命令里:

gdb -ex 'set solib-absolute-prefix /local/home/me/glibc-build/' -ex 'set interp-system-prefix /local/home/me/glibc-build/' --args ./my_test

备选兼容方案

如果上述方案在你的环境下不生效,可以临时设置动态库搜索环境变量再启动GDB:

LD_LIBRARY_PATH=/local/home/me/glibc-build/ gdb ./my_test

注意该方案优先级低于GDB内部参数,存在和系统其他动态库冲突的风险,优先使用前两种方案。

你之前尝试的gdb --args /local/home/me/glibc-build/ld-linux-x86-64.so.2 ./my_test无效的原因是:GDB还是会默认从系统路径解析运行时链接器自身依赖的glibc库,依然会触发版本符号校验失败的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 19:33:04