vscode调试mit6s081Lab
环境
- mit6.s081的实验环境
- gdb-multiarch(用于gdb调试,vscode调试实质上就是提供个图形化页面,底层还是这个)
// 安装 gdb-multiarch
sudo apt-get install gdb-multiarch
配置
首先终端输入
文件。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,
}
}
]
}
这个配置文件有两个需要改的地方。一个是
这里,要填成自己gdb-multiarc的位置(ubuntu应该默认就是这个位置)。miDebuggerServerAddress
这一项需要把端口改为
.gdbinit
文件中的那个端口号。第二个是
miDebuggerPath
调试流程
- 1、终端输入
make qemu-gdb
- 2、按F5进入调试,它会跳到kernel的main函数。
-
2、在调试控制台,输入
表示这个gdb命令。-exec file user/_sleep
(这里是个例子,表示切换到sleep.c的符号表),输出
Reading symbols from user/_sleep
表示成功了。前面加上
-exec
-
3、然后就可以在
文件中打断点了,断点是红色的表示打成功了。sleep.c
版权声明:
作者:徐锦桐
链接:https://www.xujintong.com/2023/12/03/182/
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者:徐锦桐
链接:https://www.xujintong.com/2023/12/03/182/
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
THE END