Skip to content
| Marketplace
Sign in
Visual Studio Code>Debuggers>muGDBNew to Visual Studio Code? Get it now.
muGDB

muGDB

isopodlabs

|
97 installs
| (0) | Free
minimal GDB support for Visual Studio Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

muGDB | yet another Visual Studio Code GDB Debug Adapter

A minimalist native typescript implementation of a debug adapter for GDB for use in Visual Studio Code

Why?

Have you ever been able to run gdb manually but couldn't get any of the existing vscode GDB extensions to work (well)?

  • This extension lets you be explicit about how to launch gdb, and what commands it should run.

  • There's only one request option, 'launch', and here it means 'launch gdb'. The debugee can be passed in 'debuggerArgs' or via a 'file' command.

  • GDB can be run remotely through netcat or ssh; this is separate from GDB's own ability to debug remotely.

  • You can connect to an already-running gdb process by providing a host name and port number, or via a process ID.

Features

  • Command completion
  • Support for Source, Function, Instruction, and Data breakpoints
  • All breakpoint types support conditions, hit counts, and logging
  • Disassembly viewing and stepping
  • Reverse debugging (where supported on GDB)
  • Registers shown as a hierarchy based on GDB register groups
  • Globals are shown in their own scope
  • Statics are shown in an extra scope when present
  • Debug Console prompt accepts native GDB commands (as well as MI commands), and MI results are formatted for readability
  • python-interactive is simulated though use of the python command
  • Fast - DAP commands are sent directly to gdb without the usual extra serialization

Configuration

These are all of the settings currently supported:

Launch Requests

Configuration Option Required Description
request Yes Set this to launch
debugger No Path to GDB executable
"/absolute/path/to/gdb"
debuggerArgs No Array of arguments to pass to debugger
["arg", ...]
cwd No The directory in which to start GDB
"someOptionalDirectory"
env No Key value pairs of environment variables to set in debugging shell
{"name": "value", ...}
capabilities No Key value pairs of values to override the DAP capabilites returned on initialize
{"name": value, ...}
logging No Verbosity of logging.
"off"\|"basic"\|"verbose"
startupCmds No Array of GDB commands to run at start (after .gdbinit)
["command", ...]
postLoadCmds No Array of GDB commands to run after program is loaded
["command", ...]
terminateCmds No Array of GDB commands to run at end
["command", ...]
sourceMapping No Mapping of gdb source paths to actual paths where files are found
{"path": "path", ...]

command can be a native GDB command or an MI command

Example Launch Scripts

{
    "name": "ESP32 Debug muGDB",
    "type": "mugdb",
    "request": "launch",
    "debugger": "/Users/adrianstephens/.espressif/tools/xtensa-esp-elf-gdb/15.2_20241112/xtensa-esp-elf-gdb/bin/xtensa-esp32-elf-gdb",
    "debuggerArgs": [
        "/Volumes/DevSSD/dev/SkyNetLights/firmware/.pio/build/idf-nodemcu-32s/firmware.elf",
    ],
    "startupCmds": [
        "set remote hardware-watchpoint-limit 2",
        "set remote hardware-breakpoint-limit 2",
        "set target-async on",
        "target extended-remote :3333",
        "monitor reset halt",
    ],
    "postLoadCmds": [
        "thbreak app_main",
        "continue"
    ],
    "terminateCmds": [
        "del"
    ],
    "logging": "verbose",
    "preLaunchTask": "OpenOCD",
},
{
    "name": "muGDB ssh",
    "type": "mugdb",
    "request": "launch",
    "debugger":"ssh",
    "debuggerArgs": ["ubuntu-2404np", "gdb", "/home/adrian/Documents/dev/test/a.out"],
    "logging": "verbose",
    "startupCmds": [
        "set substitute-path ./stdio-common /usr/src/glibc/glibc-2.39",     //map files for gdb
        "set substitute-path ../sysdeps /usr/src/glibc/glibc-2.39/sysdeps",
        "set disassembly-flavor intel",
    ],
    "postLoadCmds": [
        "tbreak main",
        "run"
    ],
    "sourceMapping": {
        "" : "remote:", //add 'remote:' to all source files so we load through gdb
    }
}

Additional Notes

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft