ViewAlyzer

Runtime trace analysis for embedded systems

Built with Rust and GPU-accelerated GPUI, ViewAlyzer is a native desktop app for streaming live signals and investigating blocked tasks, queue contention, and late callbacks.

ST-LINK · J-Link · CMSIS-DAP · UDP · UART

  • Arm®
  • RISC-V®
  • FreeRTOS™
  • Zephyr®
  • Eclipse ThreadX®
  • Arm® RTX5
  • ST-LINK
  • J-Link
  • Windows
  • macOS
  • Tux, the Linux penguinLinux
  • Visual Studio CodeVS Code
  • CLI
VIEWALYZER / ONE RECORDING, SYNCHRONIZED VIEWS
Communication, timers, signals, CPU activity, and task timelines in one workspace.Click to play the full video with sound ↗

Your kernel.
One connected view.

ViewAlyzer’s RTOS adapters record task and thread activity through kernel hooks. Follow scheduling, synchronization, queues, memory allocation, and timer activity alongside your application events.

FreeRTOS

Task scheduling and notifications, queues, mutexes, semaphores, event groups, kernel heap allocation, and software timer lifecycle.

Zephyr RTOS

Thread scheduling, message queues and FIFO/LIFO, mutexes, semaphores, event objects, kernel heap and slabs, and timer lifecycle.

Eclipse ThreadX®

Thread scheduling, queues, mutexes, semaphores, event flags, byte and block pools, and application timer lifecycle.

Arm RTX5

Thread scheduling, message queues, mutexes, semaphores, event flags, memory allocation and pools, and software timer lifecycle.

No RTOS? Use the recorder API for bare-metal firmware, custom domains, and application events. Check supported kernel versions and port limits before integration.

Explore the recorder

A runtime map of your firmware

Every task, queue, mutex and notification in the recording becomes one map of recorded traffic. Replay the capture and watch messages move, failures land and queues fill.

Turn on traffic heat to color each path by volume, gather the busiest objects together, and narrow the heat to any interval on the timeline.

Explore the runtime map ↗
ViewAlyzer Runtime Map with traffic heat, busy objects gathered in red arcs and quiet ones in blue
Runtime Map · traffic heat · Click to enlarge ↗

From a failure on the map to the exact event

Replay the recording from the top bar and every view follows the cursor. Switch on Issues only and failures, timeouts and contention light up where they happened.

Open one in the inspector, then jump straight to it: the Timeline and Event Table land on the event. Here, DefaultTask retries every 20 ms against a queue that is already full.

Replay and inspect ↗
Runtime Map · replay to the exact event · 23 s

Task execution and states

A task stops making progress. Is it asleep, waiting for a resource, or ready but waiting for CPU time? View execution and recorded task states together to investigate the gap.

Missing state events remain unknown, so you can distinguish recorded evidence from an assumption.

Explore task states ↗
ViewAlyzer timeline with running, ready, blocked and sleeping task intervals
Timeline · task states · Click to enlarge ↗

Queue and resource analysis

Scrub the recording to see occupancy at the cursor. Check peak usage, failed operations, and time spent full, then follow the consumer on the timeline.

RTOS adapter hooks supply resource observations. Enable the categories your investigation needs.

Inspect resources ↗
Telemetry mailbox queue at eight of eight slots alongside task activity
Resources · queue occupancy · Click to enlarge ↗

Timer and callback analysis

Line up timer arms, deadlines, callbacks, and cancellations. Select a timer to inspect its cycles and separate late execution from an intentional cancellation.

Investigate jitter, watchdog activity, and work building up in the timer service task.

Explore timers ↗
ViewAlyzer timer deadlines, callbacks and cycles
Timers · deadlines and callbacks · Click to enlarge ↗

Failed operations in context

Click a queue’s failure count to see the individual operations. Select an instance to jump to the exact timeline event, with its task or ISR and observed occupancy.

An unsuccessful nonblocking poll can be expected. Use the surrounding activity to understand whether a failed operation matters.

Follow a queue failure ↗
ViewAlyzer Analyzer identifying individual queue failures and their timeline events
Analyzer · failed operations · Click to enlarge ↗

Synchronized analysis views

Open the views you need. Each panel follows the same capture and shared cursor.

Signals in context

Plot application values beside task activity. Connect a sensor spike or changing control output to the work running at that moment.

Signal charts ↗

Work with the capture you have

Build derived signals with Trace Tune’s visual node graph. Filter inputs, convert units, and combine channels without another firmware run.

Trace Tune ↗

Follow contention and latency

Inspect queue and semaphore exchanges or mutex hold times. Scatter plots surface outliers that averages can hide.

Communication analysis ↗

Measure the interval

Place time markers across the timeline and signal charts. Read the interval between events as you zoom, pan, and scrub.

Time markers ↗

Bring recordings into regression checks

Use the CLI and queryable recordings to compare runtime behavior between builds and inspect the evidence behind a change.

Automation documentation ↗

Read events in your system’s language

Trace Domains add protocol and subsystem views to the workspace, with schemas and decoders for domain-specific events.

Trace Domain catalog ↗

Compare the tools.
Inspect the evidence.

ViewAlyzer vs. Percepio & SEGGER

Compare capture paths, analysis views, automation, and evaluation limits in the published feature matrix.

Compare features

What does recording cost?

See CPU use, timing, and RAM measured in the same telemetry application with recording off, ViewAlyzer, and Percepio.

See firmware impact

Release notes ·

What's new in ViewAlyzer 1.4.0

Inspect live recordings without stopping capture, find issues faster in Analyzer, and get more precise CPU, stack, heap, and timer measurements.

Follow the changes

Read the release highlights and fixes, with a history of published versions. This release includes every change since 1.3.1, the previous public release.

Read release notes

Upgrading an existing project?

The new viewer still reads older recorder streams. Upgrading the recorder requires the new viewer; fingerprint baselines and custom automation need migration. ESP32 debug-probe capture is temporarily unsupported.

Check compatibility

Your first recording starts here.

No account or license needed to evaluate. Get the app and the Apache-2.0 recorder library, then integrate the recorder with your RTOS or bare-metal firmware.

ViewAlyzer 1.4.0 · SHA256 checksums

Updating an existing installation? Read the release notes and upgrade checklist.

Prefer your editor? Install ViewAlyzer for VS Code ↗

Free evaluation: 5-second captures, 5-second cooldown, 10 timeline lanes, and variable watching at 100 Hz across 4 symbols. Compare Free and Pro →

Keep recording.
Get the whole picture.

One Pro license for ViewAlyzer, BKPT Debug, and BKPT Toolkit.