赞
踩
本文讲解如何搭建6.S081的环境,主要涉及到仿真模拟器(qemu)、镜像文件、依赖。Ubuntu20搭建起来比较简单,执行以下命令即可。6.S081环境搭建
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
# 启动
make qemu
调试需要两个窗口,一个以debug形式运行xv6系统,另一个gdb代理监听和控制xv6系统状态。
在调试前需要设置.gdbinit路径。
做实验时会涉及到xv6一些底层的原理,需要参考下面这本书:xv6-book
我是利用vscode远程登录了部署xv6的服务器上,然后配置tasks.json、launch.json文件。
// .vscode/tasks.json { "version": "2.0.0", "tasks": [ { "label": "xv6build", "type": "shell", "isBackground": true, "command": "make qemu-gdb", "problemMatcher": [ { "pattern": [ { "regexp": ".", "file": 1, "location": 2, "message": 3 } ], "background": { "beginsPattern": ".*Now run 'gdb' in another window.", // 要对应编译成功后,一句echo的内容. 此处对应 Makefile Line:170 "endsPattern": "." } } ] } ] }
// .vscode/launch.json { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "xv6debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/kernel/kernel", "stopAtEntry": true, "cwd": "${workspaceFolder}", "miDebuggerServerAddress": "127.0.0.1:26002", //见.gdbinit 中 target remote xxxx:xx "miDebuggerPath": "/usr/bin/gdb-multiarch", // which gdb-multiarch "MIMode": "gdb", "preLaunchTask": "xv6build" } ] }
利用vscode debug需要修改.gdbinit文件,
最后运行就可以,如下图。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。