Choose trace by the question you want to answer: application events, executed instruction order, or source coverage.
- RTT and ITM/SWO carry structured firmware events when the firmware has compatible instrumentation.
- XMOS xSCOPE records registered probes and prints from an XMOS application.
- SEGGER J-Trace captures ETM instructions and source coverage on a supported physical target.
- XMOS xsim captures simulator instructions, including tile, logical core, symbols, and cycle counts.
Use each tool’s page for connection and setup instructions. The workflows below explain how to choose and interpret the recording.
Record firmware events
RTT and ITM can record structured events when the firmware has compatible trace instrumentation. Ordinary text logs are not event recordings; use Serial transports for those.
Confirm the trace channel and target configuration before starting. For ITM, also confirm the CPU and SWO clocks and selected stimulus port. Stop the recording after reproduction and check for missing records before interpreting it.
For an instrumented XMOS application, ask to record its xSCOPE probes and prints while reproducing the issue. Select the intended hardware or simulator target and matching .xe first. A matching active xSCOPE session can be reused; starting a fresh session can launch the application. See xSCOPE setup.
Capture an instruction window
Bounded ETM capture requires a supported J-Trace, SEGGER host software, routed target trace pins, the correct trace cable, and a matching ELF. Run /debug before starting.
Bounded instruction and coverage captures reset and run the target, then halt it. They also interrupt existing GDB and RTT use of the probe. Preserve any existing fault evidence first.
The instruction window may contain only the end of the run. ETM instruction order is not a measurement of elapsed time.
Stream from a known start
Provide the matching ELF when the recording starts. Streamed ETM repeatedly halts the target between capture intervals, changing its timing. Use it to inspect execution order, not to prove deadlines or peripheral timing.
Review reported gaps before trusting a reconstructed call sequence.
Measure source coverage
Open the Coverage tab to inspect the result. Coverage describes the workload you ran; an executed line does not prove every branch or requirement was tested.
Keep the firmware artifact and test description with the report. Reopen a saved result when you only need a different view instead of resetting the board again.
Save and reopen sessions
Trace sessions persist under .embedder/traces/<session-id>/, with events and instructions in trace.db. Legacy recordings still load. Copy the complete session directory when exporting so the database and its accompanying metadata stay together.
For XMOS instruction queries, see Python trace analysis.
Check the evidence
Before drawing a conclusion, confirm the firmware match, resolved symbols, capture continuity, and any dropped-record warnings. Label partial results accordingly.
If an event trace is empty, check the firmware instrumentation and channel settings. If ETM is empty, check target power, trace routing, cable, and device name.
See J-Trace setup for probe requirements and Combined workflows for correlation with other measurements. Last modified on September 18, 2026