All skills
Skillintermediate

Debugging Tools

| Language | Debugger | Start Command | |----------|----------|---------------| | TypeScript/JS | Node Inspector | `node --inspect` | | Python | pdb/ipdb | `python -m pdb` | | Go | Delve | `dlv debug` | | Rust | rust-gdb/lldb | `rust-gdb ./target/debug/app` | | Java | JDB/IDE | IDE debugger |

Claude Code Knowledge Pack7/10/2026

Overview

Debugging Tools

Debuggers by Language

LanguageDebuggerStart Command
TypeScript/JSNode Inspectornode --inspect
Pythonpdb/ipdbpython -m pdb
GoDelvedlv debug
Rustrust-gdb/lldbrust-gdb ./target/debug/app
JavaJDB/IDEIDE debugger

Node.js / TypeScript

# Start with inspector
node --inspect dist/main.js

# Break on first line
node --inspect-brk dist/main.js

# With ts-node
node --inspect -r ts-node/register src/main.ts
// In code
debugger; // Breakpoint

// Quick print
console.log({ variable }); // Shows name and value
console.table(arrayOfObjects); // Table format
console.trace('Called from'); // Stack trace

Python

# Start debugger
python -m pdb script.py

# Post-mortem on exception
python -m pdb -c continue script.py
# In code
breakpoint()  # Python 3.7+
import pdb; pdb.set_trace()  # Older Python

# Quick print
print(f"{variable=}")  # Python 3.8+ shows name and value

# Rich debugging
from rich import inspect
inspect(object, methods=True)

pdb Commands

CommandAction
nNext line
sStep into
cContinue
lList code
p exprPrint expression
pp exprPretty print
wWhere (stack)
qQuit

Go

# Start delve
dlv debug ./cmd/app

# Attach to running process
dlv attach <pid>

# Debug test
dlv test ./pkg/...
// Quick print
log.Printf("%+v", variable) // With field names
fmt.Printf("%#v\
", variable) // Go syntax representation

// Spew for complex structures

spew.Dump(variable)

Delve Commands

CommandAction
break main.go:42Set breakpoint
continueContinue
nextNext line
stepStep into
print varPrint variable
goroutinesList goroutines

VS Code Debug Config

// .vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug TypeScript",
      "program": "${workspaceFolder}/src/main.ts",
      "preLaunchTask": "tsc: build",
      "outFiles": ["${workspaceFolder}/dist/**/*.js"]
    },
    {
      "type": "python",
      "request": "launch",
      "name": "Debug Python",
      "program": "${workspaceFolder}/main.py",
      "console": "integratedTerminal"
    }
  ]
}

Quick Reference

NeedTool
Breakpoint in codedebugger; / breakpoint()
Print with nameconsole.log({x}) / print(f"{x=}")
Stack traceconsole.trace() / traceback.print_stack()
Inspect objectconsole.dir(obj) / dir(obj)
Step throughIDE debugger or CLI debugger