{ | |
"folders": [ | |
{ "path": "."} | |
], | |
"settings": { | |
"files.associations": { | |
".*/BUILD": "starlark", | |
".*/METADATA": "starlark", | |
".*/WORKSPACE": "starlark", | |
"*.gss": "css", | |
"*.inc": "c" | |
}, | |
"files.exclude": { | |
".repo": true, | |
"autom4te.cache": true, | |
"cache": true, | |
"cicd": true, | |
"manifest": true, | |
"out": true, | |
"toolchain": true, | |
"**/Cargo.lock": true, | |
"**/target": true, | |
"**/arch-arm": true, | |
"**/arch/arm": true, | |
"**/arch/x86": true, | |
"**/x86_64": true, | |
"**/aarch64": true, | |
"**/arch/64": true, | |
"**/plat/64": true, | |
"**/plat/pc99": true, | |
} | |
}, | |
"launch": { | |
"version": "0.2.0", | |
"configurations": [ | |
{ | |
"name": "MatchaDebugger", | |
"type": "cppdbg", | |
"request": "launch", | |
// This has to be set. | |
"cwd": "${workspaceFolder}", | |
// This has to be set, but it is unused because of our custom launch script. | |
"program": "../../out/shodan_boot_rom/build-out/multihart_boot_rom/multihart_boot_rom_sim_verilator.elf", | |
"MIMode": "gdb", | |
"miDebuggerPath": "${workspaceFolder}/../../cache/toolchain/bin/riscv32-unknown-elf-gdb", | |
"miDebuggerServerAddress": "localhost:3333", // If this isn't set, vscode will open another terminal on launch | |
"logging": { "engineLogging": true }, // optional, enable if you want to see the gdb commands that were sent | |
// VSCode claims this is deprecated, but if you use "customLaunchSetupCommands" it won't start the debugging session if this isn't here | |
// and valid. It does _not_ appear to matter what it's set to. | |
"targetArchitecture": "x64", // riscv:rv32? | |
"customLaunchSetupCommands":[ | |
// Set gdb current directory. | |
{"text": "cd ${workspaceFolder}"}, | |
// Set app current directory. | |
{"text": "set cwd ${workspaceFolder}"}, | |
// Set source file search path. | |
{"text": "directory ../../sw/matcha"}, | |
{"text": "directory ../../sw/tock"}, | |
// Load the bootrom executable. | |
{"text": "file ../../out/shodan_boot_rom/build-out/multihart_boot_rom/multihart_boot_rom_sim_verilator.elf"}, | |
// Load additional symbol files. "-file-symbol-file" seems to unload previously loaded symbols, but add-symbol-file works. | |
{"text": "set confirm off"}, | |
// Matcha+TockOS symbols | |
{"text": "add-symbol-file ../../out/matcha/riscv32imc-unknown-none-elf/debug/matcha_platform"}, | |
{"text": "add-symbol-file ../../out/matcha/riscv32imc-unknown-none-elf/debug/matcha_app"}, | |
// Connect to the Renode gdb server. | |
{"text": "target remote localhost:3333"}, | |
], | |
// This is supposed to stop vscode from issuing an "-exec-continue", but it doesn't seem to work. | |
"launchCompleteCommand": "None" | |
} | |
], | |
}, | |
"extensions": { | |
}, | |
"tasks": { | |
"version": "2.0.0", | |
"tasks": [] | |
} | |
} | |