安装较旧版本的gdb
问题描述:
我在与最新的gdb
一个问题,所以我想用一老一。我发现gdb
存档here但我怎么编译/安装其中之一,所以它可以用吗?安装较旧版本的gdb
按照manual,第一configure
:
$ ./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
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[] = "abcdef";
^~~~~~~~
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与它(也许在虚拟机)。
答
您可以使用此命令来检查错误相关的配置标志:
./configure --help | grep error
有你应该看到:
--enable-werror enable -Werror in bootstrap stage2 and later
所以,你可以禁用警告作为错误:
./configure --disable-werror