BKPT LabsBKPT DEBUG · VS CODE EXTENSIONDS-0008 · REV A · 2026
THE DEBUGGER

BKPT Debug: when instrumenting the code is not an option.

BKPT Debug is a VS Code extension that debugs and traces ARM Cortex-M firmware over the plain ST-LINK or J-Link already on your desk.

Step through code, catch faults at the exception itself, watch where the CPU spends its time, replay the exact instructions that ran, and graph variables while the target is still running. All of it tiles around your code in one dockable layout.

The demo below is deliberately maxed out, with every view open at once for the tour. The panel is fully tileable: show as much or as little as you want.

A LIVE SESSION: CODE · FAULT ANALYZER · PC SAMPLING · ETM HISTORY · LIVE WATCH · TIMELINE · ITM CONSOLE
ONE PANEL

The Debug Layout is the debugger.

Call stack, breakpoints, registers, memory, sampling, faults and the trace views tile around a code view that follows the halt. Drag tiles where you want them; the layout is remembered per workspace.

NO VENDOR STACK

The probe is driven directly.

ST-LINK and J-Link work with nothing to install. One process owns the wire, so sampling, trace and live memory ride alongside run control instead of queueing behind a GDB-server chain.

IT NEVER FLASHES

Your flash is not its business.

Program the board with whatever you use today. BKPT Debug attaches to what is there, checks it against your ELF, and tells you when the two do not match instead of guessing.

IN THE TILES

Everything the debug port offers, not just the stepping.

DEBUGGER

Start, attach, step, breakpoints, call stack with locals, registers and memory, all around your code. F5 runs to main and halts with the source center stage.

FAULT ANALYZER

HardFault, BusFault, MemManage, UsageFault and SecureFault caught at the exception itself, before any handler runs. Every set status bit decoded in plain language, the stacked frame recovered, the faulting line one click away. No fault handler needed in your firmware.

FAULT ANALYZER DOCS →
ETM HISTORY

The on-chip trace buffer records instruction trace in a rolling loop while the target runs. Each breakpoint, pause or fault drains it into a flame graph, a history cursor through your code, and historical disassembly. Exact execution history, not samples.

HARDWARE TRACE DOCS →
PC SAMPLING

Live CPU load, hottest functions and per-line heat in the editor while the target runs. On-chip DWT sampling over SWO when the core has it, polling over the probe otherwise; zero overhead either way.

PC SAMPLING DOCS →
LIVE WATCH

Pick variables from your ELF: no recorder library, no code changes. Watch them as values or graphs, running, halted or stepping. Polled up to 1 kHz, or on a DWT comparator so the chip emits the value on every write with zero probe traffic.

LIVE WATCH DOCS →
TARGET SCAN

A read-only CoreSight walk of the connected chip: every debug component, the DWT comparator budget, ETM and the trace sink. Anything the silicon lacks is disabled with the reason, never silently hidden.

DWT CONTROL

Sample interval, exception enter/exit/return trace, event counters and ITM timestamps, each choice labelled with its rate and SWO share, and a load meter that warns before the pin overflows.

ITM CONSOLE

What the firmware prints on ITM stimulus ports, live and timestamped, all 32 ports selectable. Printf debugging without a UART, on the same pin as the sampling.

TRACE ANALYSIS

Debug-session trace in synchronized timeline, event, graph, task-detail, health, flame-graph and disassembly views. The same recording engine as ViewAlyzer, inside the layout, without instrumentation.

RECORDING DOCS →
GETTING STARTED

Board, ELF, F5.

Connect your board through an ST-LINK or J-Link and program it with your usual tool. Open the Debug Layout from the activity bar, pick your ELF in the top strip, and press F5: the target resets, runs to main and halts with your code center stage.

From there it is the debugger you already know: F5 continue, F10 and F11 step, click a line number for a breakpoint. Everything else is a tile you drag into place. Firmware already running? Attach joins it without a reset.

The full walkthrough, tile by tile, is in the docs.

READ THE DOCS
WHAT YOU NEED
PROBEST-LINK or J-Link · driven directly, nothing to install
TARGETSTM32 · ARM Cortex-M
GDBarm-none-eabi-gdb from the Arm GNU toolchain or STM32CubeCLT, found automatically · tracing and live watch do not need it
FLASHINGYour usual tool · BKPT Debug never flashes
FIRMWAREUnmodified · no recorder library required to debug
GET IT

Coming to the VS Code Marketplace.

BKPT Debug is in final testing on real boards. Leave an email and you will get exactly one message when it is live on the Marketplace, nothing else.