디버깅 이벤트를 설명합니다.
문법
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;
구성원
dwDebugEventCode
형식: DWORD
디버깅 이벤트의 형식을 식별하는 코드입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.
| 가치 | Meaning |
|---|---|
|
프로세스 만들기 디버깅 이벤트(프로세스와 주 스레드 모두 포함)를 보고합니다. u.CreateProcessInfo 값은 CREATE_PROCESS_DEBUG_INFO 구조를 지정합니다. |
|
create-thread 디버깅 이벤트를 보고합니다(프로세스의 주 스레드는 포함하지 않습니다. '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 구조를 지정합니다. |
|
DLL(load-dynamic-link-library) 디버깅 이벤트를 보고합니다. u.LoadDll 값은 LOAD_DLL_DEBUG_INFO 구조를 지정합니다. |
|
output-debugging-string 디버깅 이벤트를 보고합니다. u.DebugString 값은 OUTPUT_DEBUG_STRING_INFO 구조를 지정합니다. |
|
RIP 디버깅 이벤트(시스템 디버깅 오류)를 보고합니다. u.RipInfo의 값은 RIP_INFO 구조를 지정합니다. |
|
언로드-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 구조체의 멤버를 채웁니다.
요구 사항
| 요구 사항 | 가치 |
|---|---|
| 지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
| 지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
| Header | minwinbase.h(Windows.h 포함) |