基本的には、本来のCPUを外したCPUソケットにICEのプローブを接続する形態をとり、外部でCPUの動作を行いながら主要な信号の変化を追うことが可能である。CPUは多様なデジタル機器に実装されるがICEをCPUソケットにつなぐために、最終製品が動作する環境でデバッグが可能となる。さらに指定したメモリアドレスへのアクセスのような特定条件でのブレークやプログラムが暴走した時に強制ブレークをかけるなどの強力なデバッグ機能を持ち、ハードウェアの動作検証用にテストプログラムを実行するなど、ソフトウェア開発だけでなくハードウェア開発においても用いられる。多くがPCと接続されて操作される。
ICEの基本機能.
ICEは、CPU上のプログラムの実行、停止（ブレーク）以外にも、次のような機能を持つ。
レジスタの表示、変更.
CPUが持っているレジスタ (コンピュータ)の値を表示し、デバッグの状況に応じて任意の値に変更することができる。
メモリ内容の表示、変更.
CPUに接続されるメモリの値を表示し、デバッグの状況に応じて任意の値に変更することができる。
メインメモリの他にもキャッシュ内の値を操作するような機能を持つICEもある。
メモリ操作はアドレス指定により行うことも可能であるが、実際は変数名などのソースコードに準じた名称で行われる。
ブレークポイント.
ICEでは、CPUのプログラム実行を停止させる場所をブレークポイントと呼び、強制ブレークの他にブレークポイントを指定してブレークさせることが可能である。プログラムの任意の命令でブレークさせる機能はソフトウェアデバッガにも存在するが、ICEはハードウェアによりブレークを実現するため、様々なブレークポイントを指定することが可能になる。ICEには以下のようなブレークがある。
ステップ実行.
またICEによっては、ブレークした時点から逆戻るステップ実行も可能である。コンパイラの最適化によってコードが別の場所に移動した結果として、該当ソース行に相当する機械語がなくなる場合があり、その場合は該当ソース行は抜かされているように見える(また、該当ソース行には相当する機械語が存在しないため、ブレークポイントは設定できない)。
プログラムトレース.