From 3b224501c7f51094697e8ff725b70baca4a7921d Mon Sep 17 00:00:00 2001 From: Hayodea Hakol Date: Wed, 3 Sep 2025 14:56:49 -0400 Subject: [PATCH] VSCode: Add launch tasks for debugging in vscode --- .vscode/launch.json | 156 ++++++++++++++++++++++++++++++++++++++++---- .vscode/tasks.json | 98 +++++++++++++++------------- 2 files changed, 199 insertions(+), 55 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 6166ddb..18588f7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,13 +5,39 @@ "version": "0.2.0", "configurations": [ { - "name": "C++ Launch", + "name": "Debug salmanoff (Basic)", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/b/salmanoff", "args": [], "stopAtEntry": false, - "cwd": "${workspaceFolder}", + "cwd": "${workspaceFolder}/b", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set disassembly flavor to intel", + "text": "set disassembly-flavor intel", + "ignoreFailures": true + } + ], + "preLaunchTask": "build-salmanoff", + "miDebuggerPath": "/usr/bin/gdb" + }, + { + "name": "Debug salmanoff (Help)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/b/salmanoff", + "args": ["--help"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/b", "environment": [], "externalConsole": false, "MIMode": "gdb", @@ -22,15 +48,123 @@ "ignoreFailures": true } ], - "preLaunchTask": "Build", - "miDebuggerPath": "/usr/bin/gdb", - "logging": { - "trace": true, - "traceResponse": true, - "engineLogging": true, - "programOutput": true, - "exceptions": true - } + "preLaunchTask": "build-salmanoff", + "miDebuggerPath": "/usr/bin/gdb" + }, + { + "name": "Debug salmanoff (Verbose)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/b/salmanoff", + "args": ["--verbose"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/b", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "preLaunchTask": "build-salmanoff", + "miDebuggerPath": "/usr/bin/gdb" + }, + { + "name": "Debug salmanoff (Custom Args)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/b/salmanoff", + "args": ["--devicespec", "test_device", "--verbose"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/b", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "preLaunchTask": "build-salmanoff", + "miDebuggerPath": "/usr/bin/gdb" + }, + { + "name": "Attach to salmanoff (Remote Debug)", + "type": "cppdbg", + "request": "attach", + "program": "${workspaceFolder}/b/salmanoff", + "processId": "${command:pickProcess}", + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "miDebuggerPath": "/usr/bin/gdb" + }, + { + "name": "Debug salmanoff (Break on Main)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/b/salmanoff", + "args": ["--help"], + "stopAtEntry": true, + "cwd": "${workspaceFolder}/b", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set breakpoint on main", + "text": "break main", + "ignoreFailures": true + } + ], + "preLaunchTask": "build-salmanoff", + "miDebuggerPath": "/usr/bin/gdb" + }, + { + "name": "Debug salmanoff (ComponentThread Focus)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/b/salmanoff", + "args": ["--help"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/b", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set breakpoint on ComponentThread constructor", + "text": "break ComponentThread::ComponentThread", + "ignoreFailures": true + }, + { + "description": "Set breakpoint on Mind constructor", + "text": "break Mind::Mind", + "ignoreFailures": true + } + ], + "preLaunchTask": "build-salmanoff", + "miDebuggerPath": "/usr/bin/gdb" } ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 95ec58e..754361a 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -2,68 +2,78 @@ "version": "2.0.0", "tasks": [ { - "label": "Create Build Directory", - "type": "shell", - "command": "mkdir -p b", - "problemMatcher": [], - "detail": "Creates the build directory." - }, - { - "label": "Configure", - "type": "shell", - "command": "${workspaceFolder}/configure", - "options": { - "cwd": "${workspaceFolder}/b" - }, - "group": { - "kind": "build", - "isDefault": true - }, - "problemMatcher": ["$gcc"], - "dependsOn": ["Create Build Directory"], - "detail": "Runs the configure script to prepare the build environment." - }, - { - "label": "Build", + "label": "build-salmanoff", "type": "shell", "command": "make", - "options": { - "cwd": "${workspaceFolder}/b" - }, "group": { "kind": "build", "isDefault": true }, - "problemMatcher": ["$gcc"], - "dependsOn": ["Configure"], - "detail": "Builds the project using make." + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false + }, + "problemMatcher": [ + "$gcc" + ], + "options": { + "cwd": "${workspaceFolder}/b" + } }, { - "label": "clean", + "label": "clean-salmanoff", "type": "shell", "command": "make clean", + "group": "build", + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false + }, "options": { "cwd": "${workspaceFolder}/b" - }, - "group": { - "kind": "none" - }, - "problemMatcher": [], - "detail": "Cleans the build artifacts." + } }, { - "label": "test", + "label": "rebuild-salmanoff", "type": "shell", - "command": "make test", + "command": "make clean && make", + "group": "build", + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false + }, "options": { "cwd": "${workspaceFolder}/b" + } + }, + { + "label": "run-salmanoff-help", + "type": "shell", + "command": "./salmanoff --help", + "group": "test", + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false }, - "group": { - "kind": "test", - "isDefault": true - }, - "problemMatcher": ["$gcc"], - "detail": "Runs the tests." + "options": { + "cwd": "${workspaceFolder}/b" + } } ] }