目標値
デバッガー エンジンでは、さまざまな種類のターゲット、ユーザー モードとカーネル モードのターゲット、ライブ ターゲットとクラッシュ ダンプ ファイル、ローカルターゲットとリモート ターゲットのデバッグがサポートされています。 エンジンをこれらの異なる種類のターゲットに接続するには、さまざまな方法があります。
クラッシュ ダンプ ファイル
ユーザー モードとカーネル モードの両方のクラッシュ ダンプ ファイルが OpenDumpFile で開かれます。 エンジンは、WriteDumpFile2 を使用してターゲットからダンプ ファイルを作成することもできます。
ライブ、ユーザーモード ターゲット
デバッガー エンジンは、ユーザー モード プロセスの作成とアタッチの両方を実行できます。
プロセスの作成は、新しいプロセスのコマンド ラインと、必要に応じて初期ディレクトリと環境を指定することによって行われます。 その後、エンジンは新しいプロセスに接続するか、別のプロセスに接続している間、新しいプロセスを中断したままにすることができます。 たとえば、クライアントとサーバーの両方で構成されるアプリケーションをデバッグする場合、中断状態でクライアントを作成し、既に実行中のサーバーにアタッチして、クライアントが実行される前にサーバーブレークポイントを設定し、サーバー操作を誘発することができます。
プロセスからデタッチする場合、エンジンは必要に応じて、プロセスを正常に実行したままにするか、プロセスを強制終了するか、プロセスを破棄することができます (別のデバッガーがアタッチされるか、強制終了されるまで中断したままにします)。
プロセスを開始するために使用される実行可能イメージのプロセス ID と名前など、コンピューターで実行されているすべてのユーザー モード プロセスに関する情報をエンジンにクエリできます。 この情報は、デバッグするプロセスを見つけるのに役立ちます。
ライブ、カーネルモード ターゲット
メソッド AttachKernel は、デバッガー エンジンを Windows カーネルに接続します。
リモート ターゲット
デバッガー エンジンを使用してリモートでデバッグする場合は、次の 2 つの追加手順が発生する可能性があります。
ホスト エンジンへの接続 ホスト エンジンがローカル エンジン インスタンスでない場合は、DebugConnect を使用して、ホスト エンジンに接続されているクライアント オブジェクトを作成します。
ホスト エンジンをプロセス サーバーまたはカーネル接続サーバーに接続します。 ホスト エンジンがターゲットに直接接続しない場合は、実行するプロセス サーバーまたはカーネル接続サーバーに接続する必要があります。
これで、クライアントは、プロセス サーバーまたはカーネル接続サーバーを介してターゲットを取得するようにホスト エンジンに指示できます。
ターゲットの取得
ターゲットを取得する場合、ターゲットの取得は、ターゲットがイベントを生成するまで完了しません。 通常、これは、まずデバッガーをターゲットにアタッチするメソッドを呼び出し、次に WaitForEvent を呼び出してターゲットにイベントを生成することを意味します。 ターゲットがクラッシュ ダンプ ファイルである場合でも、これは引き続き当てはまります。これらは常にイベント (通常はダンプ ファイルの作成の原因となったイベント) を格納するためです。
追加情報
ターゲットへのアタッチの詳細については、「ターゲットへの接続」を参照してください。