Support debug using vscode for xv6-riscv
2023-07-31
launch.json in “.vscode” folder
{
"version": "0.2.0",
"configurations": [
{
"type": "gdb",
"request": "attach",
"name": "Attach to gdbserver",
"gdbpath": "/opt/riscv/bin/riscv64-unknown-elf-gdb",
"executable": "kernel/kernel",
"target": "localhost:26000",
"remote": true,
"printCalls": true,
"cwd": "${workspaceRoot}",
"valuesFormatting": "parseText"
}
]
}
tasks.json “.vscode” folder
{
"tasks": [
{
"label": "Build",
"type": "shell",
"command": "make",
"args": [],
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "cppbuild",
"label": "C/C++: gcc build active file",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
Remove “-O” in Makefile
run:
set some breakpoints in vscode
make qemu-gdb
click the “run” button in vscode, see below