다음을 통해 공유


지원되는 이벤트 유형

Visual Studio 디버깅은 현재 다음 이벤트 유형을 지원합니다.

  • 비동기 이벤트

    디버그 중인 애플리케이션의 상태가 변경되고 있음을 SDM(세션 디버그 관리자) 및 IDE에 알립니다. 이러한 이벤트는 SDM 및 IDE의 여가 시간에 처리됩니다. 이벤트가 처리되면 DE(디버그 엔진)에 회신이 전송되지 않습니다. IDebugOutputStringEvent2IDebugMessageEvent2 인터페이스는 비동기 이벤트의 예입니다.

  • 동기 이벤트

    디버깅 중인 애플리케이션의 상태가 변경되고 있음을 SDM 및 IDE에 알립니다. 이러한 이벤트와 비동기 이벤트의 유일한 차이점은 ContinueFromSynchronousEvent 메서드를 통해 회신을 보낸다는 것입니다.

    동기 이벤트를 보내는 것은 IDE가 이벤트를 수신하고 처리한 후 DE가 처리를 계속해야 하는 경우에 유용합니다.

  • 동기적 정지 이벤트 또는 일반 정지 이벤트

    디버그 중인 애플리케이션이 코드 실행을 중지했음을 SDM 및 IDE에 알립니다. 이벤트 메서드를 사용하여 중지 이벤트를 보내는 경우 IDebugThread2 매개 변수가 필요합니다. 중지 이벤트는 다음 방법 중 하나를 호출하여 계속됩니다.

    비고

    비동기 중지 이벤트는 지원되지 않습니다. 비동기 중지 이벤트를 보내는 것은 오류입니다.

토론(Discussion)

이벤트의 실제 구현은 DE의 디자인에 따라 달라집니다. 전송된 각 이벤트의 형식은 DE를 디자인할 때 설정되는 특성에 따라 결정됩니다. 예를 들어 한 DE는 IDebugProgramCreateEvent2 를 비동기 이벤트로 보낼 수 있으며, 다른 DE는 IDebugProgramCreateEvent2를 중지 이벤트로 보낼 수 있습니다.

다음 표에서는 이벤트 유형뿐만 아니라 이벤트에 필요한 프로그램 및 스레드 매개 변수를 지정합니다. 모든 이벤트는 동기식일 수 있습니다. 어떤 이벤트도 동기적일 필요가 없습니다.

비고

IDebugEngine2 인터페이스는 모든 이벤트에 필요합니다.

Event IDebugProgram2 IDebugThread2 이벤트 중지
IDebugActivateDocumentEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugBreakEvent2 필수 필수 Yes
IDebugBreakpointBoundEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugBreakpointErrorEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugBreakpointUnboundEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugBreakpointEvent2 필수 필수 Yes
IDebugCanStopEvent2 필수 필수 아니오
IDebugDocumentTextEvents2 허용되지 않음 허용되지 않음 아니오
IDebugEngineCreateEvent2 허용되지 않음 허용되지 않음 아니오
IDebugEntryPointEvent2 필수 필수 Yes
IDebugErrorEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 사용할 수 있습니다.
IDebugExceptionEvent2 필수 필수 Yes
IDebugExpressionEvaluationCompleteEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 사용할 수 있습니다.
IDebugInterceptExceptionCompleteEvent2 필수 필수 Yes
IDebugLoadCompleteEvent2 필수 필수 Yes
IDebugMessageEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 사용할 수 있습니다.
IDebugModuleLoadEvent2 필수 허용되지만 필수는 아닙니다. 아니오
IDebugOutputStringEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugProgramCreateEvent2 필수 허용되지만 필수는 아닙니다. 아니오
IDebugProgramDestroyEvent2 필수 허용되지만 필수는 아닙니다. 아니오
IDebugPropertyCreateEvent2 필수 허용되지만 필수는 아닙니다. 아니오
IDebugPropertyDestroyEvent2 필수 허용되지만 필수는 아닙니다. 아니오
IDebugReturnValueEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugStopCompleteEvent2 필수 필수 Yes
IDebugStepCompleteEvent2 필수 필수 Yes
IDebugSymbolSearchEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오
IDebugThreadCreateEvent2 필수 필수 아니오
IDebugThreadDestroyEvent2 필수 필수 아니오
IDebugThreadNameChangedEvent2 허용되지만 필수는 아닙니다. 허용되지만 필수는 아닙니다. 아니오

참고하십시오