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は設定できません。 |
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | dbgeng.h (Dbgeng.h を含む) |
関連項目
AbandonCurrentProcess の
AttachKernel の
ConnectProcessServer の
CreateProcess2 の
CreateProcessAndAttach2 を する
DetachCurrentProcess の
GetRunningProcessDescription の
GetRunningProcessSystemIds の
IDebugClient の
IDebugClient2 の
IDebugClient3 の
IDebugClient4 の
IDebugClient5 の
TerminateCurrentProcess の
デバッガー エンジンの を する