BKPT LabsDOCS/VIEWALYZER/TRACE DOMAINS VIEWALYZER · GPUI EDITION
VIEWALYZER · VIEWS

Trace Domains

Trace Domains turn subsystem registers and firmware values into named channels, readable states, and findings with supporting evidence. Load a .vadomain file for your device and firmware, then use it to follow the subsystem in ViewAlyzer.

Browse the Domain catalog for engineering references and firmware requirements, or Authoring examples for templates to adapt. For guided setup, start with USBX on ThreadX. The Trace Domains overview explains how to use the same descriptor in BKPT Debug.

The sidebar section

Open Trace Domains in the sidebar to manage your installed domains:

  • Load Domain File validates and installs a .vadomain file.
  • Load Domain Package installs a folder containing a descriptor and its supporting files.
  • The toggle enables the domain for captures you start and recordings you open.
  • The gear opens a dedicated dockable view of the domain.
  • The pencil opens its descriptor in the Domain Editor.
  • The delete button uninstalls a user-installed domain after confirmation.

Installed domains are available across your ViewAlyzer projects. See Domain packages for search locations and CLI commands.

Capture with a domain

  1. Install and enable the domain.
  2. Select the target and probe. For register observations, select the required SVD. For firmware symbols or structured members, select the ELF from the flashed firmware build.
  3. For domain-only polling, turn Software Trace off. Enable it when also collecting recorder data. Domain-only capture needs no ViewAlyzer recorder control block; RAM snapshots still require recorder firmware.
  4. Start capture while the firmware runs. Follow the domain's setup instructions for peripheral initialization and other preconditions. Open its gear view for live cards and tables.
  5. Stop capture to review completed findings in Analyzer. Use each value's Graph control to select its history in Trace. Saved domain values follow the hovered/pinned trace cursor, or the recording end when no cursor is selected.

A domain that only styles existing recorded channels needs no additional target setup. Opening a saved recording applies the enabled domain to its recorded data; it does not read new values from the board.

What a domain adds to the views

PART OF THE DESCRIPTOR WHAT IT PROVIDES
channelsUnits, labels, grouping, and display styles in Trace.
sampled_stateRegisters and firmware values observed through the debug probe during capture.
derivedCalculated channels, such as a counter rate or a decoded state field.
verdictsFindings in Analyzer, with severity, explanation, and supporting values.
presentationCards or tables grouping related observations, with readable field labels.
instrumentAn external instrument recorder that runs with capture and merges its samples into the recording.

If a domain includes an instrument recorder, its parameters appear beneath it in the sidebar. Configure them and enable Record with capture before starting. One live instrument runs per capture.

Domain views and graph choices

Sections fold automatically: cards start open and tables closed unless the descriptor supplies a different initial state. Nested groups declared in the JSON start closed. Expand just the branch you need, or use Expand all and Collapse all. The app remembers your choices for that domain.

Each value's Graph control selects its trace without removing it from the cards/tables. Sampling, recording and checks continue when a graph is hidden or a branch is collapsed. Reset graphs restores the descriptor defaults and leaves expansion choices alone. Counters, ring occupancy and derived rates normally start graphed in structured domains; authors can override this per channel. See the format reference.

The desktop is read-only. Descriptors may declare typed actions for explicit use in BKPT Debug, but opening a domain, editing its JSON or selecting Graph never writes to firmware.

The Domain Editor

Click the pencil beside an installed domain to edit its descriptor. Form provides field-by-field editing for channels, sampled inputs, derived channels, and verdicts. JSON lets you edit the descriptor directly. Validation runs before saving and reports errors such as unknown fields or invalid channel references.

Use the Trace Domain format reference for supported fields, examples, and compatibility requirements. The worked example provides a complete descriptor you can adapt to your firmware.

Interpreting observations and findings

Check both the requested sampling rate and the achieved rate. Probe observations can miss brief changes between reads, and separately sampled fields do not form an atomic snapshot of running firmware.

An unavailable input is missing evidence. Read its reason before interpreting a card or finding: the ELF or SVD may be missing, a pointer may be null, or a required peripheral condition may have failed. Do not treat unavailable values as zero.

When writing a domain, make each finding explain the observed condition and the next useful check. Choose durations that the sampling rate can support, and use cumulative counters when you need evidence of events that may occur between samples.