次の方法で共有


IDebugClient3::AttachProcess メソッド (dbgeng.h)

AttachProcess メソッドは、デバッガー エンジン をユーザー モード プロセスに接続します。

構文

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [in] ULONG   ProcessId,
  [in] ULONG   AttachFlags
);

パラメーター

[in] Server

プロセスへのアタッチに使用するプロセス サーバーを指定します。 Server が 0 の場合、エンジンはプロセス サーバーを使用せずにローカル プロセスに接続します。

[in] ProcessId

デバッガーがアタッチするターゲット プロセスのプロセス ID を指定します。

[in] AttachFlags

デバッガーがターゲット プロセスにアタッチする方法を制御するフラグを指定します。 これらのフラグの詳細については、「解説」を参照してください。

戻り値

このメソッドは、エラー値を返す場合もあります。 詳細については 戻り値の を参照してください。

リターン コード 形容
S_OK
メソッドが成功しました。

備考

このメソッドは、ライブ ユーザー モードデバッグでのみ使用できます。

WaitForEvent メソッドが呼び出されるまで、エンジンはプロセスに完全にアタッチされません。 プロセスによってイベントが生成された後 (たとえば、create-process イベント) は、デバッガー セッションで使用できるようになります。
 
ライブ ユーザー モード ターゲットの作成とアタッチの詳細については、「Live User-Mode Targets」を参照してください。

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 を含む)

関連項目

.attach (プロセスにアタッチ)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2 する

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

デバッガー エンジンの する