デバッグ エンジンの実装方法を選択する

ランタイム アーキテクチャを使用して、デバッグ エンジン (DE) の実装方法を決定します。 デバッグ中のプログラムに対してインプロセスでデバッグ エンジンを作成できます。 Visual Studio のセッション デバッグ マネージャー (SDM) に対してインプロセスでデバッグ エンジンを作成します。 または、その両方に対してアウトプロセスでデバッグ エンジンを作成します。 次のガイドラインは、これら 3 つの方法のいずれかを選択するのに役立ちます。

ガイドライン

DE を SDM とデバッグ中のプログラムの両方に対してアウトプロセスにすることはできますが、通常はそうする必要はありません。 プロセス境界を越えた呼び出しは比較的低速です。

Win32 ネイティブ ランタイム環境用および共通言語ランタイム環境用のデバッグ エンジンは、既に用意されています。 どちらかの環境で DE を置き換える必要がある場合は、SDM でインプロセスで DE を作成する必要があります。

それ以外の場合は、SDM に対してインプロセスで、またはデバッグ中のプログラムに対してインプロセスで DE を作成します。 DE の式エバリュエーターでプログラム シンボル ストアに頻繁にアクセスする必要があるかどうかを検討する必要があります。 または、高速アクセスのためにシンボル ストアをメモリに読み込むことができます。 次の方法も検討してください。

  • 式エバリュエーターとシンボル ストアの間に多数の呼び出しがない場合、またはシンボル ストアを SDM のメモリ空間に読み取ることができる場合は、SDM に対してインプロセスで DE を作成します。 プログラムにアタッチするときは、デバッグ エンジンの CLSID を SDM に返す必要があります。 SDM では、この CLSID を使用して DE のインプロセス インスタンスを作成します。

  • DE でシンボル ストアにアクセスするためにプログラムを呼び出す必要がある場合は、プログラムでインプロセスで DE を作成します。 この場合は、プログラムで DE のインスタンスを作成します。