Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Skellar DAP SnapshotsNew to Visual Studio Code? Get it now.
Skellar DAP Snapshots

Skellar DAP Snapshots

RIDCorix

| (0) | Free
Capture per-line debugger snapshots (stack, scopes, variables) and visualize them in a webview. MVP focused on Python.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Skellar Execution Visualization (MVP)

Capture per-line debugger snapshots using the Debug Adapter Protocol (DAP) and visualize the current variable state in a Webview. MVP targets Python via VS Code's Python debug adapter; design supports other languages.

Features

  • Listens to DAP stopped events and captures:
    • Current file and line from stackTrace
    • Locals from scopes + variables (depth configurable)
  • Streams the latest state into a live Webview panel
  • Command to start Python debugging for the active file

Commands

  • DAP Snapshots: Start Python Debug (dapSnapshots.startPython)
  • DAP Snapshots: Show Snapshot Panel (dapSnapshots.showPanel) – Panel title: "Execution Visualization"

Settings

  • dapSnapshots.maxVariableDepth (default: 3)
  • dapSnapshots.captureFor (default: ["python"])

Development

cd vscode-extension
npm install
npm run watch

Press F5 to launch an Extension Development Host.

Planned roadmap

  • Cross-language adapters (Node, C/C++, Go)
  • AST instrumentation layer for expression/operator-level tracing
  • Enhanced visualizations (animations for arrays, bubbles for variables)

Loop instrumentation (optional, recommended)

The visualizer can pick up explicit loop context via console output markers. If you emit a line beginning with [DAPS-INSTR] followed by JSON, the extension will forward it to the webview to drive the loop lane precisely (variable name, range, current value).

Python helper:

def daps_loop(var_name, start, stop, step, current):
  import json, sys
  payload = {"loop": {"var": var_name, "range": [start, stop, step], "current": current}}
  print("[DAPS-INSTR]" + json.dumps(payload))

Example usage:

sum_ = 0
for i in range(10):
  # Emit explicit loop step info (start=0, stop=10, step=1)
  daps_loop("i", 0, 10, 1, i)
  sum_ += i

Notes:

  • The message must be a single line starting with [DAPS-INSTR] and immediately followed by a JSON object.
  • The extension recognizes this marker from DAP output events and forwards it live to the panel.
  • If no instrumentation is present, the panel falls back to heuristics using recent snapshots.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft