次の方法で共有


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

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

戻り値

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

リターン コード 説明
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を設定することはできません。

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h を含む)

こちらもご覧ください

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

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

デバッガー エンジン