环境
OS: wsl2+Ubuntu 20.04.4 LTS
gdb: 9.2
xv6:2021
调试过程
- 在xv6-labs-2021文件夹中输入make qemu-gdb, 提示run gdb in another window.
- 打开另外一个窗口,进入xv6-labs-2021文件夹,输入gdb-multiarch, 然后在gdb调试环境中输入file及要调试的可执行文件的名字,如file user/_echo.
- 然后在gdb中输入b main,使用c命令(不可用r命令)执行到断点处,当需要输入命令或参数时,在1中打开的窗口中输入即可.
出现问题及解决方法
-
在调试过程的第2步中,输入gdb-multiarch之后,显示To enable excution of the file add
“add-auto-load-safe-path /mydata/study/csdiy/MIT6.081/xv6/xv6-labs-2021/.gdbinit”
line to your configuration file “/home/kosimo/.gdbinit”.
若不添加这一行代码到/home/kosimo/.gdbinit,那么在第3步执行c命令后会出现assertion error.
创建/home/kosimo/.gdbinit文件并添加代码后,assertion error便会消失. -
在调试过程的第2步,若输入gdb命令,会出现undefined item: riscv:rv64;更改为gdb-multiarch则避免了这项问题