デバッグ イベントについて説明します。
構文
typedef struct _DEBUG_EVENT {
DWORD dwDebugEventCode;
DWORD dwProcessId;
DWORD dwThreadId;
union {
EXCEPTION_DEBUG_INFO Exception;
CREATE_THREAD_DEBUG_INFO CreateThread;
CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
EXIT_THREAD_DEBUG_INFO ExitThread;
EXIT_PROCESS_DEBUG_INFO ExitProcess;
LOAD_DLL_DEBUG_INFO LoadDll;
UNLOAD_DLL_DEBUG_INFO UnloadDll;
OUTPUT_DEBUG_STRING_INFO DebugString;
RIP_INFO RipInfo;
} u;
} DEBUG_EVENT, *LPDEBUG_EVENT;
Members
dwDebugEventCode
型: DWORD
デバッグ イベントの種類を識別するコード。 このメンバーには、次のいずれかの値を指定できます。
| 価値 | Meaning |
|---|---|
|
プロセスの作成デバッグ イベントを報告します (プロセスとそのメイン スレッドの両方が含まれます)。 u.CreateProcessInfo の値は、CREATE_PROCESS_DEBUG_INFO構造体を指定します。 |
|
スレッドの作成デバッグ イベントを報告します (プロセスのメイン スレッドは含まれません。「CREATE_PROCESS_DEBUG_EVENT」を参照)。 u.CreateThread の値は、CREATE_THREAD_DEBUG_INFO構造体を指定します。 |
|
例外デバッグ イベントを報告します。 u.Exception の値は、EXCEPTION_DEBUG_INFO構造体を指定します。 |
|
終了プロセス デバッグ イベントを報告します。 u.ExitProcess の値は、EXIT_PROCESS_DEBUG_INFO構造体を指定します。 |
|
終了スレッド デバッグ イベントを報告します。 u.ExitThread の値は、EXIT_THREAD_DEBUG_INFO構造体を指定します。 |
|
load-dynamic-link-library (DLL) デバッグ イベントを報告します。 u.LoadDll の値は、LOAD_DLL_DEBUG_INFO構造体を指定します。 |
|
output-debugging-string デバッグ イベントを報告します。 u.DebugString の値は、OUTPUT_DEBUG_STRING_INFO構造体を指定します。 |
|
RIP デバッグ イベント (システム デバッグ エラー) を報告します。 u.RipInfo の値は、RIP_INFO構造体を指定します。 |
|
unload-DLL デバッグ イベントを報告します。 u.UnloadDll の値は、UNLOAD_DLL_DEBUG_INFO構造体を指定します。 |
dwProcessId
型: DWORD
デバッグ イベントが発生したプロセスの識別子。 デバッガーはこの値を使用して、デバッガーのプロセスごとの構造を見つけます。 これらの値は、テーブル インデックスとして使用できる小さな整数であるとは限りません。
dwThreadId
型: DWORD
デバッグ イベントが発生したスレッドの識別子。 デバッガーはこの値を使用して、デバッガーのスレッドごとの構造を見つけます。 これらの値は、テーブル インデックスとして使用できる小さな整数であるとは限りません。
u
デバッグ イベントに関連する追加情報。 この共用体は、 dwDebugEventCode メンバーで説明されているように、デバッグ イベントの種類に適した型と値を受け取ります。
u.Exception
dwDebugEventCode が EXCEPTION_DEBUG_EVENT (1) の場合、u.Exception はEXCEPTION_DEBUG_INFO構造体を指定します。
u.CreateThread
dwDebugEventCode がCREATE_THREAD_DEBUG_EVENT (2) の場合、u.CreateThread はCREATE_THREAD_DEBUG_INFO構造体を指定します。
u.CreateProcessInfo
dwDebugEventCode がCREATE_PROCESS_DEBUG_EVENT (3) の場合、u.CreateProcessInfo はCREATE_PROCESS_DEBUG_INFO構造体を指定します。
u.ExitThread
dwDebugEventCode が EXIT_THREAD_DEBUG_EVENT (4) の場合、u.ExitThread はEXIT_THREAD_DEBUG_INFO構造体を指定します。
u.ExitProcess
dwDebugEventCode がEXIT_PROCESS_DEBUG_EVENT (5) の場合、u.ExitProcess はEXIT_PROCESS_DEBUG_INFO構造体を指定します。
u.LoadDll
dwDebugEventCode が LOAD_DLL_DEBUG_EVENT (6) の場合、u.LoadDll はLOAD_DLL_DEBUG_INFO構造体を指定します。
u.UnloadDll
dwDebugEventCode が UNLOAD_DLL_DEBUG_EVENT (7) の場合、u.UnloadDll はUNLOAD_DLL_DEBUG_INFO構造体を指定します。
u.DebugString
dwDebugEventCode がOUTPUT_DEBUG_STRING_EVENT (8) の場合、u.DebugString はOUTPUT_DEBUG_STRING_INFO構造体を指定します。
u.RipInfo
型: RIP_INFO
dwDebugEventCode が RIP_EVENT (9) の場合、u.RipInfo はRIP_INFO構造体を指定します。
注釈
WaitForDebugEvent 関数が成功すると、DEBUG_EVENT構造体のメンバーが格納されます。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
| Header | minwinbase.h (Windows.h を含む) |