开始 MIT 6.S081-Operating System Engineering 课程实验
问题
最近在学习 MIT的操作系统课程,课程网址: https://pdos.csail.mit.edu/6.828/2021/schedule.html
在lecture 4 Page Tables 这一课的演示部分,教授使用qemu与riscv64-linux-gnu-gdb 工具调试操作系统的启动过程,但我在 WSL debain系统中发现没有 riscv64-linux-gnu-gdb 工具,搜索后发现使用 gdb-multiarch 工具也可以进行调试,但调试过程中遇到一些问题,记录一下实验流程。
过程
环境搭建参考链接: tools
windows:
1. 首先需要安装 Windows Subsystem for Linux 过程略
2. 登陆到 WSL中, 我使用的是 debain, 在命令行执行如下代码, 如果使用root用户执行,可去除 sudo`sudo apt-get update && sudo apt-get upgrade`
`sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu`
如果不配置 ~/.gdbinit 文件,会遇到无法调试的问题
- 以下默认都使用root用户来进行操作
- 在用户目录下 新建 .gdbinit 文件 (默认你已经知道linux基础命令)
vim ~/.gdbinit
写入如下内容:set auto-load safe-path /
保存退出 - 打开一个终端,在课程代码目录xv6-riscv下执行:
make CPUS=1 qemu-gdb
课程代码地址
打开另一个终端,执行gdb-multiarch
- 在用户目录下 新建 .gdbinit 文件 (默认你已经知道linux基础命令)
说明
- 最重要的步骤是需要在用户家目录下新建 .gdbinit 文件,并写入
set auto-load safe-path /
, 注意linux用户权限问题 - 用 gdb-multiarch 代替 教授使用的 riscv64-linux-gnu-gdb
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 xiaohong!