이벤트 정보
디버깅 세션에 액세스할 수 있을 때마다 마지막 이벤트가 발생합니다. 세션에 액세스할 수 있게 된 이벤트입니다. 이벤트 대상은 마지막 이벤트를 생성한 대상입니다. 세션에 액세스할 수 있게 되면 현재 대상이 이벤트 대상으로 설정됩니다. 마지막 이벤트의 세부 정보는 GetLastEventInformation에서 반환됩니다. 마지막 이벤트에 대한 명령 포인터와 이벤트가 발생한 경우 명령 포인터의 메모리는 요청 작업 DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET 및 DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM 의해 반환됩니다.
대상이 크래시 덤프 파일인 경우 마지막 이벤트는 덤프 파일을 만들기 전에 발생한 마지막 이벤트입니다. 이 이벤트는 덤프 파일에 저장되고 엔진은 덤프 파일을 디버깅 대상으로 획득할 때 이벤트 콜백에 대해 생성합니다.
대상이 커널 모드 대상이고 버그 검사 발생한 경우 ReadBugCheckData를 사용하여 버그 검사 코드 및 관련 매개 변수를 찾을 수 있습니다.
대상이 사용자 모드 Minidump인 경우 덤프 파일 생성기는 추가 이벤트를 저장할 수 있습니다. 일반적으로 이 이벤트는 생성기가 덤프 파일을 저장하도록 유발한 이벤트입니다. 이 이벤트의 세부 정보는 GetStoredEventInformation 및 요청 작업 DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT, DEBUG_REQUEST_TARGET_EXCEPTION_THREAD 및 DEBUG_REQUEST_TARGET_EXCEPTION_RECORD 의해 반환됩니다.
덤프 파일에는 정적 이벤트 목록이 포함될 수 있습니다. 각 이벤트는 특정 시점에 대상의 스냅샷 나타냅니다. 이 목록의 이벤트 수는 GetNumberEvents에서 반환됩니다. 목록의 각 이벤트에 대한 설명은 GetEventIndexDescription을 사용합니다. 이 목록의 이벤트를 현재 이벤트로 설정하려면 SetNextEventIndex 메서드를 사용합니다. WaitForEvent를 호출한 후 이벤트는 현재 이벤트가 됩니다. 목록에서 현재 이벤트인 이벤트를 확인하려면 GetCurrentEventIndex를 사용합니다.