加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 安装旧的gdb版本

发布时间:2020-12-14 00:54:06 所属栏目:Linux 来源:网络整理
导读:我遇到了最新gdb的问题,所以我想使用较旧的gdb.我找到了gdb存档 here但是如何编译/安装其中一个以便可以使用? 根据manual,首先配置: $./configurechecking build system type... x86_64-unknown-linux-gnuchecking host system type... x86_64-unknown-lin
我遇到了最新gdb的问题,所以我想使用较旧的gdb.我找到了gdb存档 here但是如何编译/安装其中一个以便可以使用?

根据manual,首先配置:

$./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
[...]
configure: creating ./config.status
config.status: creating Makefile

然后做:

$make
make[1]: Entering directory '/root/Desktop/gdb-7.7'
Configuring in ./libiberty
configure: creating cache ./config.cache
checking whether to enable maintainer-specific portions of Makefiles... no
checking for makeinfo... /root/Desktop/gdb-7.7/missing makeinfo --split-size=5000000
[...]

但它会导致错误:

remote-utils.c:436:19: error: ‘hexchars’ defined but not used [-Werror=unused-const-variable=]
 static const char hexchars[] = "0123456789abcdef";
                   ^~~~~~~~
cc1: all warnings being treated as errors
Makefile:238: recipe for target 'remote-utils.o' failed
make[4]: *** [remote-utils.o] Error 1
make[4]: Leaving directory '/root/Desktop/gdb-7.7/gdb/gdbserver'
Makefile:1345: recipe for target 'subdir_do' failed
make[3]: *** [subdir_do] Error 1
make[3]: Leaving directory '/root/Desktop/gdb-7.7/gdb'
Makefile:1018: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/root/Desktop/gdb-7.7/gdb'
Makefile:8611: recipe for target 'all-gdb' failed
make[1]: *** [all-gdb] Error 2
make[1]: Leaving directory '/root/Desktop/gdb-7.7'
Makefile:832: recipe for target 'all' failed
make: *** [all] Error 2

关于降级程序的指南发现here也没有帮助,因为我总是得到“找不到版本”错误:

$sudo apt-get install gdb="7.8.1"
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Version '7.8.1' for 'gdb' was not found

解决方法

您正在尝试使用较新的GCC编译较旧的GDB.

这通常不起作用:较新的GCC启用新警告,GDB开发人员修复这些警告(通常在新GCC版本实际发布之前).

您应该可以使用以下命令禁用这些警告:

./configure 'CFLAGS=-w'

或者通过编辑生成的Makefile并在那里修改CFLAGS.

其他替代品:

>你实际上可以修复代码不产生警告(删除remote-utils.c的第436行应该这样做),或者>您可以安装相同“年份”的旧GCC,并使用它构建GDB(可能在虚拟机中).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读