ZView, a Zephyr RTOS runtime visualizer
Project description
ZView, a Zephyr RTOS runtime visualizer
Real-time system observability for Zephyr RTOS, delivered over SWD.
Stop guessing your stack margins and heap health. ZView provides a zero-footprint, high-fidelity visualization of your Zephyr application’s runtime, delivered over SWD with zero instrumentation.
No UART, no RTT, and no manual code changes. Just Kconfig and your probe.
This page covers the standalone pip installation. If you are using ZView inside a west workspace (the most common setup), see the main documentation instead.
Prerequisites
To properly analyze your Zephyr app, your ELF binary must be compiled with specific Kconfig options enabled:
## prj.conf
CONFIG_INIT_STACKS=y # Required for stack watermarks
CONFIG_THREAD_MONITOR=y # Required for thread discovery
CONFIG_THREAD_STACK_INFO=y # Required for thread metadata
# Optional Features
CONFIG_THREAD_NAME=y # Enables thread name display
CONFIG_THREAD_RUNTIME_STATS=y # Enables CPU usage tracking
CONFIG_SYS_HEAP_RUNTIME_STATS=y # Enables heap runtime stats and fragmentation map
Installation
Install ZView in your Python virtual environment:
pip install zview
Or from the root of the repository:
pip install .
How to Use
# Example: nRF5340 DK via JLink
zview -e build/zephyr/zephyr.elf -r jlink -t nRF5340_xxAA
Commands
ZView is invoked through one of four commands. Bare zview ... is a shortcut for zview live ....
| Command | Purpose | TUI |
|---|---|---|
live |
Attach to a probe and render the TUI. Default when no command is given. | yes |
record |
Capture a live session to a .ndjson.gz recording file and exit. |
no |
replay |
Render the TUI from a previously captured recording. | yes |
dump |
Emit a single polling frame and exit. | no |
Common arguments
| Argument | Used by | Description |
|---|---|---|
-e, --elf-file |
all | Path to the firmware .elf file. |
-r, --runner |
live, record, dump |
Debug runner: jlink, pyocd, or gdb. |
-t, --runner-target |
live, record, dump |
MCU descriptor for the chosen runner (see below). |
--period |
live, record, dump |
Polling period in seconds (default: 0.10). |
Command-specific arguments
| Argument | Command | Description |
|---|---|---|
-o, --output |
record |
Recording target path (.ndjson.gz). |
--duration |
record |
Recording upper bound, in seconds. |
--frames |
record |
Recording upper bound, in data frames. |
-i, --input |
replay, dump |
Recording source path (.ndjson.gz). |
--no-pacing |
replay |
Drain the recording as fast as possible instead of honoring its wall-clock cadence. |
--frame |
dump |
Which polling frame to emit (1-indexed; default: 1). |
--json |
dump |
Emit the frame as JSON on stdout. |
Finding the right value for -t
The -t argument is the MCU descriptor name as expected by your chosen runner. How to find it depends on the runner:
JLink (-r jlink)
Use the device name from the J-Link Supported Devices list.
# Example: Nordic nRF5340 DK
zview -e build/zephyr/zephyr.elf -r jlink -t nRF5340_xxAA
pyOCD (-r pyocd)
Run pyocd list --targets to see the available target names for your installed packs.
pyocd list --targets # find your target name
# Example: STM32F401 Nucleo
zview -e build/zephyr/zephyr.elf -r pyocd -t stm32f401xe
GDB server (-r gdb)
Pass the host:port of your GDB server instead of a device name.
zview -e build/zephyr/zephyr.elf -r gdb -t localhost:1234
For navigation, offline recording/replay workflows, advanced usage, and QEMU/GDB targets, refer to the main documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zview-0.13.0.tar.gz.
File metadata
- Download URL: zview-0.13.0.tar.gz
- Upload date:
- Size: 49.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3983a3cf85652bc230bee140220508484129dd9674e2871183b4251057494b0d
|
|
| MD5 |
44e136136f127e50495873053771e120
|
|
| BLAKE2b-256 |
9fbc15af94a0fb428aea2101055b2546f588bc6f8df4d65a0732ab94134364fb
|
Provenance
The following attestation bundles were made for zview-0.13.0.tar.gz:
Publisher:
version_release.yml on wkhadgar/zview
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zview-0.13.0.tar.gz -
Subject digest:
3983a3cf85652bc230bee140220508484129dd9674e2871183b4251057494b0d - Sigstore transparency entry: 1406095445
- Sigstore integration time:
-
Permalink:
wkhadgar/zview@4973a1b228c2e4f8e5183378144e3addc7816158 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wkhadgar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
version_release.yml@4973a1b228c2e4f8e5183378144e3addc7816158 -
Trigger Event:
push
-
Statement type:
File details
Details for the file zview-0.13.0-py3-none-any.whl.
File metadata
- Download URL: zview-0.13.0-py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f799cdd49f533b4d60751dcf387b00f3976a6fc4ca2f49022c2a88d9b21467d
|
|
| MD5 |
29343a42f6af04f5300db2d5d3198508
|
|
| BLAKE2b-256 |
fac7ffca0aab81e2149c5f3609f19ae1020c5760a013dea97fd4c6372f15a942
|
Provenance
The following attestation bundles were made for zview-0.13.0-py3-none-any.whl:
Publisher:
version_release.yml on wkhadgar/zview
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zview-0.13.0-py3-none-any.whl -
Subject digest:
5f799cdd49f533b4d60751dcf387b00f3976a6fc4ca2f49022c2a88d9b21467d - Sigstore transparency entry: 1406095461
- Sigstore integration time:
-
Permalink:
wkhadgar/zview@4973a1b228c2e4f8e5183378144e3addc7816158 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wkhadgar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
version_release.yml@4973a1b228c2e4f8e5183378144e3addc7816158 -
Trigger Event:
push
-
Statement type: