18.1.2. Halting or Self-hosted debug

Invasive debug may be divided into halting debug (also known as external debug) and monitor debug (also known as self-hosted debug). In either case, the debug logic of the core generates a debug event in response to some circumstance, such as a breakpoint being hit. The handling of that debug event is what distinguishes monitor debug from halting debug.

In halting debug, the debug event causes the core to enter debug state. In debug state, the core is halted, meaning that it no longer fetches instructions. Instead, the core executes instructions under the direction of a debugger running on a different host connected through JTAG, or another external interface.

In monitor debug, the debug event causes a debug exception to be raised. The exception must be handled by dedicated debug monitor software running on the same core. Monitor debug presupposes software support.

Copyright © 2015 ARM. All rights reserved.ARM DEN0024A