已编译带LZMA的GDB仍提示禁用LZMA,dve-full64无法打开求助
问题核心
你编译的带LZMA支持的GDB并未被dve-full64调用,它实际在使用系统默认的、未开启LZMA支持的GDB版本。
解决步骤
检查dve-full64调用的GDB路径
用strace跟踪系统调用,定位它加载的GDB:strace dve-full64 2>&1 | grep gdb或者直接查看dve-full64的配置文件(一般在安装目录的
config/settings文件夹内),找到指定GDB路径的配置项。确认默认GDB的状态
先查看默认GDB的位置:which gdb再检查该GDB是否支持LZMA:
gdb --configuration | grep with-lzma如果输出中没有
--with-lzma,说明这是系统自带的无LZMA支持版本。让dve-full64使用编译好的GDB
方法1:修改dve配置
找到配置里的GDB路径设置,替换为你编译的GDB路径(例如/usr/local/bin/gdb),保存后重启dve-full64。方法2:临时调整PATH优先级
在启动dve-full64前,将编译的GDB所在目录放到PATH最前端:export PATH=/usr/local/bin:$PATH dve-full64此方法仅对当前终端会话生效。
方法3:全局替换系统GDB(需root权限)
若要全局生效,可备份系统默认GDB并创建软链接指向编译版本:sudo mv /usr/bin/gdb /usr/bin/gdb.bak sudo ln -s /usr/local/bin/gdb /usr/bin/gdb操作前请确认编译的GDB可正常运行。
验证修复效果
启动dve-full64,检查警告是否消失;也可在dve内查看GDB版本信息,确认使用的是带LZMA支持的编译版本。
额外排查点
如果以上步骤无效,检查编译的GDB是否正确链接了LZMA库:
ldd /usr/local/bin/gdb | grep lzma
若无输出,说明编译时LZMA库未被正确链接,需先安装lzma开发包(如liblzma-dev),再重新执行configure、make、make install流程编译GDB。
内容的提问来源于stack exchange,提问作者GGGGHQ

