| { |
| "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": "ShodanDebugger", |
| "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/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"}, |
| |
| // seL4 symbols |
| {"text": "add-symbol-file out/cantrip/kernel/kernel.elf"}, |
| {"text": "add-symbol-file out/cantrip/capdl-loader"}, |
| {"text": "add-symbol-file out/cantrip/debug_console.instance.bin"}, |
| {"text": "add-symbol-file out/cantrip/process_manager.instance.bin"}, |
| |
| // 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": [] |
| } |
| } |