In-circuit emulation

It was historically in the form of bond-out processor which has many internal signals brought out for the purpose of debugging.

Using standard chips instead of custom bond-out versions makes the technology ubiquitous and low cost, and eliminates most differences between the development and runtime environments.

These shortcomings make in-circuit software debugging tools essential for many common development tasks.

The terminal or PC provides an interactive user interface for the programmer to investigate and control the embedded system.

In usage, an ICE provides the programmer with execution breakpoints, memory display and monitoring, and input/output control.

Beyond this, the ICE can be programmed to look for any range of matching criteria to pause at, in an attempt to identify the origin of a failure.

A pin header and cable assembly connects the adaptor to a socket where the actual central processing unit (CPU) or microcontroller mounts within the embedded system.

Most host systems are ordinary commercial computers unrelated to the CPU used for development.

It provides the same features as in-circuit debugging, such as inspection of internal state or variables and may have the ability to set checkpoints, breakpoints and watchpoints.

[3] On the 80286 two instructions (0F 04, 0F 05) exist to dump/restore the complete CPU state to memory offset 0x800, along with a single-byte override prefix (F1) to enable ICE-mode to access user-memory.