Debugging & Tasks

Debugging

Set breakpoints, step through execution, and inspect state — for compiled and interpreted languages alike — without leaving the editor for a separate debugger UI.

Starting a debug session

Open the Run and Debug view from the Activity Bar (Ctrl+Shift+D) and press the green play button, or just press F5 from anywhere. If your project doesn't have a debug configuration yet, Gunamaya offers to generate one based on the project type it detects.

Breakpoints

Click in the gutter next to any line to set a breakpoint. Right-click one for a conditional breakpoint — pause only when an expression is true, or only after N hits.

Step controls

Step over, into, or out of function calls, or run to cursor, all from the floating debug toolbar or their keyboard shortcuts.

Variables & Watch

Inspect every variable in scope when execution is paused, and pin specific expressions to a Watch list that updates live as you step.

Debug Console

Evaluate arbitrary expressions in the paused program's context — useful for testing a fix before you write it into the actual code.

Configuring launch.json

For anything beyond auto-detection, a debug configuration lives in .vscode/launch.json in your workspace — which program to run, what arguments to pass, environment variables, and which debugger to use. Create one with the gear icon in the Run and Debug view, which opens a picker scoped to the languages Gunamaya detects in your project.

.vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Run current file",
      "program": "${file}"
    }
  ]
}

Multiple configurations, one dropdown

Every configuration in launch.json shows up in the dropdown at the top of the Run and Debug view — a common setup is one entry for the app itself and another for its test suite, switched between with a click.

Which languages are supported

JavaScript, TypeScript, and Node.js debugging work out of the box with no extension required. Other languages — Python, Go, Rust, C/C++, Java, and more — get the same breakpoint/step/inspect experience once you install that language's debugger extension from Open VSX; most mainstream languages have a mature one available.

Debugging and the Integrated Browser

For front-end work, pair a debug session with the Integrated Browser: set a breakpoint in your client-side code, trigger the code path from the browser panel next to it, and step through exactly what the browser is doing without switching to a separate DevTools window.