BKPT LabsVIEWALYZER · TRACING SOFTWAREDS-0002 · REV B · 2026

The runtime, on the record.

Works today with the debug probe already on your desk.

For engineers

Live visibility into RTOS scheduling, interrupts, and memory over any standard debug probe. Software tracing through a lightweight recorder, or hardware trace over ETM when you cannot touch the build.

For OEMs & product teams

ViewAlyzer OEM Extensions turn proprietary silicon, protocols, and firmware instrumentation into first-class trace domains, with dedicated decoding, visualization, analysis, and tooling built directly into ViewAlyzer.

ViewAlyzer capturing a live RTOS run: trace plots, a fingerprint comparison with per-metric pass/fail results, an event table with linked RTOS events, timeline with task slices and a priority inversion, and per-task timing details

FEATURE COMPARISON

Today ViewAlyzer does most of what these tools do, and a dozen things none of them do. By our own count that is 85 to 90% of what either of them does, and the one real gap is the number of RTOS kernels we have written adapters for. That gap is named in this table rather than buried, and it closes soon. What the table cannot show is the part we care about most: a ViewAlyzer capture is a record, not a picture. Every number in the GUI is reachable from the headless CLI, so interrupt latency, scheduling jitter, stack headroom or a deadline that was missed once can each be a budget your CI asserts against and fails the build on, with the trace attached to the failure. For our competitors the GUI is the product and automation is the afterthought. And the direction is not on anyone else's roadmap either: ViewAlyzer already captures through whatever probe is on your desk, and our BKPT #1 probe will put hardware instruction trace on benches that have never been able to afford it.

SHIPPING, INCLUDING WHERE IT IS SOLVED A DIFFERENT WAY HALF SOLVED, GAP NOTED NOT AVAILABLE ?NOT ON THEIR PUBLISHED SHEET ONLY IN VIEWALYZER
Feature Percepio SEGGER BKPT Labs
ViewFree ProfilePaid TracealyzerPaid SystemViewFree or paid ViewAlyzer FreeNo license needed ViewAlyzerLicensed
Probes and transports
Probes and transportsWhat it can capture through ? J-Link Any interface, per their sheet J-Link for streaming ST-Link, J-Link, CMSIS-DAP, UDP, UART, CustomJ-Trace (coming soon)
Only in ViewAlyzer
ETM instruction traceOnly in ViewAlyzer Flame graph, call graph, source view and a step-through of what actually ran
Live variable watchingNo firmware instrumentationOnly in ViewAlyzer Data Plot needs the firmware to send the values 100 Hz, 4 symbols 1 kHz and up on a running target. No halt, no reset
Math on tracesNode graph of formulas over channelsOnly in ViewAlyzer Wire a trace into a formula node and graph the result, live during a capture. A formula can call any of 24 built-in maths functions, reference other channels as variables, look back N samples, and feed its own last output back for IIR filters
Peripheral register browserCMSIS-SVDOnly in ViewAlyzer Peripherals, registers and bit fields from your SVD. Tick any of them to poll and graph on a running target
ELF symbol browserOnly in ViewAlyzer Searchable, sortable symbol table with a size heat map
Firmware memory analysisFrom the ELF and MAPOnly in ViewAlyzer Flash and RAM capacity, section layout, and the largest sections with the linker source that pulled them in
Function call graphOnly in ViewAlyzer Built from the ELF: pick a root, set a depth, pan and zoom the graph
Trace fingerprintsRegression checks against a known-good runOnly in ViewAlyzer Freeze a good capture as a small fingerprint file that carries a tolerance for every metric, or let it learn normal variance from several runs. Every new capture then gets a pass, warn or fail verdict per metric, in the app and from a CLI compare that fails your CI build on a regression.
IPC message anatomyWhere one message spent its timeOnly in ViewAlyzer Aggregate IPC metrics, no per-message pairing Every queue send is paired with the receive that dequeued it, every notification and semaphore give with its take. Pick one exchange and see how long it sat in the queue versus how long the consumer took, then jump the timeline zoomed to that exact moment. A full-capture latency scatter marks backlog peaks, so messages that were slow because the queue was deep stand out at a glance. The same per-path pairing stats print from the headless CLI.
MCP server for AI agentsOnly in ViewAlyzer An agent can start a capture, query it, run SQL and read the license state
Token-budgeted query APIBuilt for LLM context limitsOnly in ViewAlyzer Three tiers with hard token caps. Ask for too much and you get a fix, never a silent truncation
SQL over a recordingOnly in ViewAlyzer Read-only joins and aggregation, from the CLI or from an agent
Any agent drives the live viewModel agnostic, no plugin per vendorOnly in ViewAlyzer The control port can start, stop and export, not move the view Tool calls and a harness, not a plugin for one vendor's model, so point whatever agent you already use at it. Available to demo, and licensable if you want it inside your own IDE or agent
Python client packageOnly in ViewAlyzer Python bindings to script captures, replay and analysis, with typed results
Core visualization
Trace view Task / ISR swim lanes, 10 lanes Unlimited lanes, nested function spans, contention links
Event log Virtual scroll over millions of rows, search, relation links, click to seek
CPU load graph Stacked per-task bands, hover breakdown, busy-vs-idle headline load
User events shown in trace Unlimited traces, 8 widget types and counting
Trace snapshotsPost-mortem grab of a target buffer up to 16 KB unlimited unlimited Single-shot or post-mortem; the buffer can be dumped with any debugger Firmware keeps a post-mortem ring in RAM. Attach a probe after a crash or an untethered run, and one button or one CLI flag scans for the ring and saves a normal recording
Trace streaming J-Link only J-Link RTT Any probe, any transport. Live streaming is the default mode, not an upgrade
Profiling and analysis
Communication flow API calls show in the event list, no flow view A Comms panel turns the capture into paths: every producer, object and consumer combination gets a sortable row with rate, median and p99 latency, blocking, and failed operations like full-queue sends and wait timeouts. Give-to-take links and mutex contention are still drawn right on the timeline
User event signal plot Data Plot, with scaling and offset per signal Line, bar, histogram, gauge, counter, table, toggle, register bitfield
Heap usage Per-heap bytes used and free, with allocation sources Per-heap totals, and every failed allocation with the size it wanted
Stack usage Per task, where the kernel reports it Per-task high-water marks
Timing metrics Min, quartiles, max and activation counts per context Min / max / mean / jitter, percentiles, preemption counts, priority data
Advanced
Streaming over any interface J-Link RTT probe-side. The IP and UART recorders move the work into your firmware SWO / ITM, J-Link RTT, RAM buffer over SWD, direct ST-Link USB, CMSIS-DAP, UDP, serial
Unlimited trace length Uncapped, including under the non-commercial license 5 s per capture
Interval tracing Performance markers: start, stop, mark Function spans from firmware, and highlight any region for its own statistics
State machine tracing Visible through toggle and register widgets. No state diagram yet
Runnable tracingAUTOSAR runnables Function spans are the nearest equivalent
Interval plot Box plot and histogram of durations, not durations over time Execution and period scatter, event-interval scatter, viewport histogram
Instance graphs Per-instance scatter. Click the outlier to jump to it
Statistics report Contexts and Runtime windows, exportable Overview panel, plus stats tables inside every recording
Data export CSV of events, contexts and terminal output The recording is a SQLite database. There is no export step
Advanced RTOS analytics Running, blocked and suspended totals. No inversion detection Priority inversion, contention detail, preemption, registry overflow warnings
Multiple RTOS and bare metal embOS, Micrium, uC/OS II and III, FreeRTOS, ThreadX, NuttX, Zephyr, plus no-OS Zephyr, FreeRTOS and bare metal from one recorder. Fewer kernels than SystemView today: gap noted, more adapters on the way
Multicore recording ? ? ? Per-core event lists and CPU load, time synchronized Single core today
SDK for custom integrations Documented C API, recorder sources on GitHub C recorder API, documented wire protocol, custom transport hook, Python client package
ELF support An ELF in the project names resources and locates the RTT block Symbol browser, symbol-driven trace filters, live variable watching, source navigation
Project settings for multiple targets Projects hold ELFs, recorder config and recordings One config file per board, checked in beside the firmware
Linux tracing with LTTng MCU targets only
Floating licenses ?Group and company-wide licenses; floating not stated No activation needed Machine-bound activation today. Talk to us if you need floating, site or another arrangement and we will work something out
Free edition terms Free, with most analysis features removed Paid only Paid only Uncapped, non-commercial use only Capped, but commercial use allowed Paid
Embedding and OEM termsRun it inside your own product ? ? ? ? Licensing can cover running the engine inside your own backend and serving the results through your own front end. Ask and we will write the terms
OEM Trace DomainsMake proprietary technology first-class in ViewAlyzer ? ? ? ? Private or distributable trace domains with dedicated event semantics, decoders, timeline lanes, statistics, filters and purpose-built visualizations for your silicon, protocol stack or firmware platform
Automation, scripting and AI access
Fully scriptable headless binarySame binary, no GUI ? Flags and a TCP port drive the desktop app. There is no non-GUI binary Record, replay, query, doctor. Stable output lines and exit codes to script against
Full CLI parityAny metric the GUI shows, headless Events, contexts and terminal export to CSV, driven through the GUI Every number the panels show is reachable without a display: CSV metrics from replay, JSON from the tiered query API, or SQL over the same tables the panels read. Stable output lines and documented exit codes to assert on in CI
Capture and hardware reach
Published recorder footprint ? ? ? Under 2 KB ROM, about 600 B RAM, about 200 B stack per context 2.4 KB flash, 644 B RAM, 64 B stack on the event path, bare metal on a Cortex-M4
Per-event CPU cost ? ? ? Under 200 cycles, quoted as under 1% at 10,000 events/s on a 200 MHz Cortex-M4 282 to 319 cycles at 170 MHz, measured per API, timestamps to a single CPU cycle
Attach without resetting the target ? RTT attach and post-mortem read leave the target running Attach to a running system mid-flight and still get named tasks
Exact event-loss accounting Overflow events say data was lost, not how much Know exactly how many events were lost, not just that something was
Works without vendor CLIs installed Self-contained, but streaming needs J-Link hardware Direct probe drivers. Vendor tools help, they never gate you
VS Code extensionWorking inside the editor TraceExporter saves a snapshot and opens it in the desktop app Standalone app. SEGGER’s VS Code extension is for J-Link debugging The trace UI itself runs inside VS Code, not a hand-off to a desktop app. The same UI runs inside BKPT Studio
Windows, macOS and Linux x64 and Arm on all three Native builds on all three, plus a Debian package

Percepio columns reproduce their published comparison sheet and the SystemView column follows the SEGGER SystemView User Guide (UM08027, v4.10), both read 3 August 2026. Where a competing product may have a capability its documentation does not cover, the cell is a question mark rather than a claim of absence. SystemView is free of charge for non-commercial use with no feature limits, and $298 for a perpetual single-user commercial license. ViewAlyzer Free is the same binary as the licensed build with capture caps applied: 5 second captures with a 5 second cooldown between them, 10 timeline lanes, variable watching at 100 Hz across 4 symbols. User traces are not capped. Nothing is feature gated out of it.

REGRESSION TRACKING

The trace is the test.

A capture is a record, so every number in it is something a build can be measured against. Give a metric a baseline and a tolerance and it becomes a gate: the run that drifts past it fails, and the trace that proves it is attached to the failure. No screenshot, no one remembering what last month looked like.

Everything the panels show is reachable headless, so this runs on real hardware in CI the same way it runs on your desk: boards, transports and probe combinations as a matrix, one row per case, with stable output lines and exit codes to assert on.

  • Timing, footprint, event counts and pipeline cost, tracked per run
  • Baseline, tolerance band and a gate line on every metric
  • Hardware in the loop, one case per board and transport
viewalyzer · metric trendsbaseline · tolerance · gate
Metric trend cards for a hardware-in-the-loop suite: each metric plotted per run against its baseline, tolerance band and gate, beside the list of board and transport cases
TRACE FINGERPRINTS

Freeze the run you trust.

A fingerprint is a known-good capture boiled down to a small file you commit next to the code: CPU share per task, timing stats per trace, stack high water marks, heap peak, event rates and per-function ETM timing, each carrying its own tolerance. It stores expectations, not just values.

Load a baseline during a live session and every capture is judged the moment it lands: each metric gets a pass, warn or fail verdict against its own thresholds, and pinned runs let you compare candidates mid-session. The exact same compare runs headless and exits nonzero on a fail, so the gate in CI and the verdict on your desk can never disagree.

  • Learns tolerances from several good runs instead of guessing them
  • Gate on exactly the metrics you choose, with advisories on ones that gate poorly
  • Counts compare as per-second rates, so captures of different lengths compare fairly
viewalyzer · fingerprint comparebaseline · delta · tolerance
ViewAlyzer fingerprint panel comparing a live capture against a pinned baseline run: value, baseline, delta and tolerance for each task, ISR and trace metric with pass, warn and fail status, an overall fail verdict (214 pass, 4 warn, 88 fail) and each regression flagged in red
COMMS ANALYTICS

Follow the message, not just the task.

RTOS bugs love the space between tasks: a queue that backs up once an hour, a notification that lands late, a mutex held a little too long. The Comms panel pairs every send with the receive that consumed it, queue messages in FIFO order, notifications by peer, semaphore gives with takes, mutex acquires with releases, and groups them into paths: this producer, through this object, to this consumer.

Each path is a row you can sort by rate, median and p99 latency, worst case, blocking or failures. Open one and you get the full-capture latency scatter with backlog peaks marked, then click a single exchange and see its anatomy: time in the queue, time in the consumer, end to end, with one click jumping the timeline to that exact moment.

  • Failures are first class: full-queue sends, wait timeouts and dropped events are counted per path
  • Unmatched events are classified, never hidden: a poll timeout looks different from a message still in flight
  • The same per-path stats print from the headless CLI, so a latency budget can gate CI
viewalyzer · comms · pathsrate · latency · failures
EXECUTION REPLAY

Step through what actually ran.

ETM trace reconstructs the executed instruction stream into flame graphs, dynamic call graphs, and a source level step through of the recorded run. The bug only has to happen once. Requires the BKPT #1 probe.

viewalyzer · execution replayetm · full reconstruction
ETM flame graph beside the matching source lines from the recorded run
OEM TRACE DOMAINS

Make ViewAlyzer understand your technology.

Your product is more than an RTOS and a stream of generic user events. If your silicon, SDK, middleware or internal platform has behavior worth understanding, an OEM Trace Domain can make those concepts native to ViewAlyzer.

A wireless vendor can expose connection state, radio activity and protocol transactions. A motor-control team can surface control-loop phases and fault recovery. A proprietary runtime can get its own objects, relationships and timing rules. Engineers see the language of the product instead of event IDs and printf strings.

  • Dedicated event schemas, decoders and protocol-aware timelines
  • Domain-specific statistics, filters, relations and visualizations
  • Private enterprise extensions or vendor-distributed integrations
  • Optional recorder-side instrumentation and long-term compatibility support
TALK TO US ABOUT AN OEM DOMAIN
EXAMPLE DOMAINVENDOR BLE STACK
Not generic events. Product semantics.

The extension maps proprietary instrumentation into objects and relationships ViewAlyzer can reason about, visualize and query through the same GUI, CLI, SQL and agent interfaces as the built-in trace domains.

TimelineAdvertising windows, connection intervals, radio activity and sleep transitions aligned with tasks and ISRs.
TransactionsATT writes, GATT notifications, pairing, encryption and PHY updates connected as causal flows.
AnalyticsConnection latency, missed windows, retry counts, duty cycle and domain-specific timing budgets.
DistributionKeep it private for an internal platform, or license a branded domain for customers using your silicon or SDK.
THE EXTENSION FRAMEWORK STAYS VIEWALYZER. YOUR PROPRIETARY DOMAIN STAYS YOURS.

Try it on your bench today.

ViewAlyzer is free to evaluate, with no license and no account. For evaluation purposes, recording is capped at 5 seconds per capture until a license is activated; everything else works, and 5 seconds is plenty to watch your scheduler breathe.

Each download bundles the app installer with the ViewAlyzerRecorder firmware library (Apache-2.0), with Zephyr, FreeRTOS, and bare-metal adapters included, so your first capture is one flash away.

COMING SOON

Windows builds are code-signed, but the certificate is new and Microsoft SmartScreen may warn until it builds reputation — choose “More info”, then “Run anyway”. Apple notarization is in progress; on macOS, right-click the app and choose Open the first time you launch it.

PRICING

Request a quote.

There is no one-size-fits-all price because there is no one-size-fits-all team. A solo consultant, a five-person device shop, and a platform org need different seats, support, and terms. Tell us how you work and we will quote what fits. Priced so the engineer who wants it can get it approved, not escalated. And it runs on the debug probe already on your desk.

WHICH OPERATING SYSTEMS? (SELECT ALL THAT APPLY)
WHAT ARE YOU INTERESTED IN?