环境
-
mit6.s081的实验环境
-
gdb-multiarch(用于gdb调试,vscode调试实质上就是提供个图形化页面,底层还是这个)
// 安装 gdb-multiarch
sudo apt-get install gdb-multiarch
大家好,我叫徐锦桐,个人博客地址为
www.xujintong.com
,github地址为
https://github.com/xjintong
。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。
配置
首先终端输入
make qemu-gdb
,项目根目录产生一个
.gdbinit
文件。
点开这个文件,然后记住画线的那个端口号,我这里是
25000
(你的可能不一样),
然后删除画横线的这行
。
vscode调试会用到个
launch.json
文件。
launch.json
文件配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "debug xv6",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/kernel/kernel",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"miDebuggerServerAddress": "localhost:25000",
"miDebuggerPath": "/usr/bin/gdb-multiarch",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "pretty printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": {
// "engineLogging": true,
// "programOutput": true,
}
}
]
}
这个配置文件有两个需要改的地方。一个是
miDebuggerServerAddress
这一项需要把端口改为
.gdbinit
文件中的那个端口号。第二个是
miDebuggerPath
这里,要填成自己gdb-multiarc的位置(ubuntu应该默认就是这个位置)。
调试流程
-
1、终端输入
make qemu-gdb
-
2、按
F5
进入调试,它会跳到kernel的main函数。