Features

Everything you need to watch a live target

SWD Tracer turns the debug information your build already produces into a continuous view of what your firmware is doing.

Zero firmware instrumentation

No printf, no hooks, no ring buffers. Your firmware ships exactly as you debugged it.

Tracing happens entirely on the host side. Nothing is linked into your image, so there is no code-size cost, no CPU overhead and no behavioural difference between the build you observe and the build you release.

ELF symbol parsing

Globals, statics, structs and enums are read straight from DWARF debug information.

SWD Tracer parses the DWARF data your compiler already emits: names, addresses, types, sizes and byte layout. Struct members and array elements are addressable individually, and the symbol list is always in sync with the binary on the target.

Real-time visualization

Continuous time-series plots of live values, sampled while the core keeps running.

Values stream into scrolling plots with adjustable time windows and per-signal scaling. Because acquisition never halts the core, timing-sensitive control loops keep their real behaviour while you watch them.

Dashboard system

Arrange plots and readouts into saved layouts, one per debugging task.

Build a view per subsystem — motor control, power, state machine — and save it with the project. Reopen the dashboard on the next session and every signal reattaches by symbol name.

Derived variables

Compute expressions from traced values without changing the target.

Define new signals as expressions over existing ones — unit conversions, error terms, magnitudes, filters — evaluated on the host. Ask a new question about the data without a rebuild.

Embedded debugging workflow

Built around the tools already on your bench: your ELF, your probe, your target.

Point it at a build output and a standard SWD probe and it works. No custom bootloader, no vendor middleware, no changes to how you compile or flash.