补充一下xv6 gdb调试环境的搭建,我这里装的是最新的15.2的gdb的版本。我下载的是下面的第二个xz后缀的文件:
配置最详细的步骤可以参考下面的文章:
[MIT 6.S081] Lab 0: 实验配置, 调试及测试
这里记录一下踩过的一些报错:
文章没讲具体怎么换清华的镜像源,可以参考:ubuntu更换清华源、安装常用工具
1. configure: error: Building GDB requires GMP 4.2+, and MPFR 3.1.0+. Try the --with-gmp and/or --with-mpfr options to specify their locations. If you obtained GMP and/or MPFR from a vendor
安装GMP、MPFR等需要的版本工具,这里参考GCC 版本升级 (源码编译): configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+文章的1-2小节安装即可,注意下面的preholder使用相对路径可能有错误,要换作编译根目录的绝对路径,使用相对路径会发生诸如下面的错误:
libtool: error: cannot determine absolute directory name of ‘…/gmp-6.2.1/lib’ Makefile:471: recipe for target ‘libmpc.la’ failed"
接下去安装gdb,make的时候会出现下面的报错
2. checking for suitable m4… configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
这个简单,没有安装m4,安装一下即可:
sudo apt-get install m4
3. configure: error: no usable python found at /usr/bin/python
原文gdb使用的配置如下,应该使用的是python2:
$ ../configure --prefix=/usr/local --with-python=/usr/bin/python --target=riscv64-unknown-elf --enable-tui=yes
我看了下我的python:
whereis python
发现有python2.7和python3.6的,我原来怀疑是自己python版本的问题,看了一下gdb的文档,可能使用python3支持好一点
另外在github上找到了一个帖子注释掉源码的一个代码说会好一点:
no usable python found at /usr/bin/python3
Seems that the script python/python-config.py returned some invalid flags that caused the gcc command to fail.
The solution is to open /gdb/python/python-config.py and comment out these two lines:
if getvar('LINKFORSHARED') is not None:
libs.extend(getvar('LINKFORSHARED').split())
上面的代码在gdb目录下的"/gdb/python/python-config.py"中。
然后我改了一下配置
$ ../configure --prefix=/usr/local --with-python=/usr/bin/python3 --target=riscv64-unknown-elf --enable-tui=yes
重新跑了一下,编译成功。
后面的就是如法炮制,还是看开头的文档跟着操作即可。