Valgrind
Valgrindは、本質的にはJITコンパイラ(バイナリ変換)の技術を用いた仮想機械である。元々のプログラムそのものがホストのプロセッサで直接実行されるわけではない。代わりにVEXと呼ぶライブラリを使い、Valgrindはまずプログラムを中間表現(IR、Intermediate Representation)に変換する。中間表現自体はプロセッサ非依存であり、SSAベースである。変換の後、Valgrindが中間表現をマシンコードに再度変換してホストプロセッサで実行させるが、その前後で「ツール」(下記参照)はIRに対して自由に操作を行うことができる。かなりのパフォーマンスがこれらの変換の過程(およびツールが挿入するコード)で損なわれ、プログラムはValgrind上では(まったくツールを使用しない場合でも)通常より4〜5倍低速に動作する。しかし、仮想機械によるIRの形態は計測・解析・デバッグには適している。これによりツールの開発が簡単になり、大半のプロジェクトでは、デバッグ中のこの程度の性能の低下は大きな問題とはならない。
システムコールも、ホストOSのシステムコールを呼び出す前にValgrindで一度ハンドリングされる。仮想機械として仮想化するのはCPUとメモリのみであり、それ以外のハードウェアはホストOSのものをそのまま使う。