# Ecosystem, Tooling, and Observability > **The criterion.** Writing the code is half the battle; debugging determines the timeline. Look for > out-of-the-box trace/profiling integration (SEGGER SystemView, Percepio Tracealyzer) and execution hooks to > track CPU load, stack usage, and runtime anomalies. ## How Revera answers it Revera has one instrumentation vocabulary at every scheduler / sync event, fanning out to two backends: a portable **flight-recorder ring** (SMP-safe, dumped over any console after a fault — the "last N events before the crash" black box) and **SEGGER SystemView** (live timeline over J-Link). Both are **zero-cost when off**. On top of that: **post-mortem** fault/panic decode, a **ps/top-style snapshot**, per-thread **CPU accounting** and **stack high-water**, and weak **hooks** (idle, stall, watchdog) the application overrides. ## Feature · how to turn it on · how to use it · where it works | Feature | Turn on with | Use these APIs | Where | |---|---|---|---| | Flight-recorder trace ring | `TK_CONFIG_ENABLE_TRACE` | `tk_trace_dump`, `tk_trace_format` | all | | SEGGER SystemView | `TK_CONFIG_ENABLE_SYSVIEW` | (automatic — same call sites) | ARM Cortex-M + J-Link | | Post-mortem / panic decode | — | fault handlers + trace dump | all (see examples) | | Thread snapshot (ps/top) | `TK_CONFIG_ENABLE_INTROSPECT` | `tk_kernel_thread_snapshot`, `tk_thread_set_name` | all | | Per-thread CPU accounting | `TK_CONFIG_ENABLE_PROFILING` | `tk_thread_cpu_ticks`, `tk_thread_run_count` | all | | Stack high-water / overflow | `TK_CONFIG_ENABLE_STACK_CHECK` (default on) | `tk_thread_stack_peak` / `_free`, `tk_set_stack_overflow_hook` | all | | Execution hooks | — | `tk_kernel_set_idle_hook`, `tk_kernel_on_stall` (weak), `tk_watchdog_kick` (weak) | all | *Full signatures and contracts: [API reference — Threads / Tooling](../reference/api.md).* ## Limits & roadmap - Live-timeline integration is **SystemView** (ARM + J-Link); **Percepio Tracealyzer** is not integrated (the portable ring is the vendor-neutral alternative). - Build/packaging tooling from the project's history — the `tkgen` board-config generator and an SDK packaging script — is **not in 0.1.0** but is port-forward-ready. ## Learn more - **Run it:** `examples/trace` · `examples/sysview` · `examples/panic` / `panic_decode` · `examples/hardfault` · `examples/stall_detect`. - **Full API:** [API reference](../reference/api.md).