IDebugClient::AttachProcess メソッド (dbgeng.h)
AttachProcess メソッドは、デバッガー エンジンをユーザー モードプロセスに接続します。
構文
HRESULT AttachProcess(
[in] ULONG64 Server,
[in] ULONG ProcessId,
[in] ULONG AttachFlags
);
パラメーター
[in] Server
プロセスにアタッチするために使用するプロセス サーバーを指定します。 Server が 0 の場合、エンジンはプロセス サーバーを使用せずにローカル プロセスに接続します。
[in] ProcessId
デバッガーがアタッチするターゲット プロセスのプロセス ID を指定します。
[in] AttachFlags
デバッガーをターゲット プロセスにアタッチする方法を制御するフラグを指定します。 これらのフラグの詳細については、「解説」を参照してください。
戻り値
このメソッドは、エラー値を返す場合もあります。 詳細については、「 戻り値 」を参照してください。
リターン コード | 説明 |
---|---|
|
メソッドは正常に実行されました。 |
注釈
このメソッドは、ライブ ユーザー モードデバッグでのみ使用できます。
DEBUG_ATTACH_XXX ビット フラグは、 デバッガー エンジン がユーザー モード プロセスにアタッチする方法を制御します。 カーネル ターゲットにアタッチするときに使用されるDEBUG_ATTACH_XXX オプションについては、「 AttachKernel」を参照してください。
次の表では、使用可能なフラグ値について説明します。
常時 | 説明 |
---|---|
DEBUG_ATTACH_NONINVASIVE |
ターゲットに非侵襲的にアタッチします。 非インヴァシブ デバッグの詳細については、「 非インヴァシブ デバッグ (ユーザー モード)」を参照してください。
このフラグが設定されている場合、フラグDEBUG_ATTACH_EXISTING、DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK、およびDEBUG_ATTACH_INVASIVE_RESUME_PROCESSを設定することはできません。 |
DEBUG_ATTACH_EXISTING |
デバッガーが既にアタッチされている (および破棄される可能性がある) アプリケーションに再アタッチします。 ターゲットへの再アタッチの詳細については、「 ターゲット アプリケーションへの再アタッチ」を参照してください。
このフラグが設定されている場合は、他のDEBUG_ATTACH_XXX フラグを設定しないでください。 |
DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND |
非侵襲的にアタッチする場合は、ターゲットのスレッドを中断しないでください。
このフラグが設定されている場合は、フラグ DEBUG_ATTACH_NONINVASIVEも設定する必要があります。 |
DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK |
(Windows XP 以降)ターゲットにアタッチするときは、最初のブレークインを要求しないでください。
このフラグが設定されている場合、フラグDEBUG_ATTACH_NONINVASIVEおよびDEBUG_ATTACH_EXISTINGを設定することはできません。 |
DEBUG_ATTACH_INVASIVE_RESUME_PROCESS | このフラグが設定されている場合、フラグDEBUG_ATTACH_NONINVASIVEおよびDEBUG_ATTACH_EXISTINGを設定することはできません。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | dbgeng.h (Dbgeng.h を含む) |