ETM (Embedded Trace Macrocell)
ARM's hardware block for instruction trace, which compresses and streams out exactly which path the program took — without halting the core.
A breakpoint tells you where the program is. ETM tells you how it got there. The block sits next to the core in ARM's CoreSight architecture and emits a compressed stream of branches and exceptions; the debugger reconstructs everything else from the binary. The stream leaves either through a parallel trace port (four data pins plus a clock) to a dedicated probe, or into a small on-chip buffer (ETB).
It is the tool for bugs that vanish the moment you stop the processor: timing-dependent crashes, rare branches, HardFaults with a meaningless stack. It also yields code coverage from real hardware, which certified industries appreciate. The catch is cost — ETM is optional on Cortex-M3/M4/M7, missing on the M0+ (which gets the simpler MTB), and needs a probe in an entirely different price bracket from a basic SWD dongle. Its sibling ITM handles what the program chooses to print instead.