다음을 통해 공유


MDAInfo 구조체

MDA(관리형 디버깅 도우미)의 생성을 트리거하는 Event_MDAFired 이벤트에 대한 세부 정보를 제공합니다.

구문

typedef struct _MDAInfo {  
    LPCWSTR  lpMDACaption;  
    LPCWSTR  lpMDAMessage  
} MDAInfo;  

멤버

멤버 Description
lpMDACaption 현재 MDA의 제목입니다. 타이틀은 Event_MDAFired 이벤트를 트리거한 오류의 종류를 설명합니다.
lpMDAMessage 현재 MDA에서 제공하는 출력 메시지입니다.

설명

MDA(관리형 디버깅 도우미)는 CLR(공용 언어 런타임)과 함께 작동하여 런타임 실행 엔진에서 잘못된 조건을 식별하거나 엔진 상태에 대한 추가 정보를 덤프하는 등의 작업을 수행하는 데 도움이 되는 디버깅입니다. MDA는 그렇지 않으면 트래핑하기 어려운 이벤트에 대한 XML 메시지를 생성합니다. 이는 관리형 코드와 비관리형 코드 간의 전환을 디버깅하는 데 특히 유용합니다.

런타임은 MDA 생성을 트리거하는 이벤트가 발생할 때 다음 단계를 수행합니다.

  • 호스트가 Event_MDAFired 이벤트 알림을 받기 위해 ICLROnEventManager::RegisterActionOnEvent를 호출하여 IActionOnCLREvent 인스턴스를 등록하지 않은 경우 런타임은 호스팅되지 않은 기본 동작을 진행합니다.

  • 호스트가 이 이벤트에 대한 처리기를 등록한 경우 런타임은 디버거가 프로세스에 연결되어 있는지 여부를 확인합니다. 이 경우 런타임은 디버거로 나뉩니다. 디버거가 계속되면 호스트를 호출합니다. 디버거가 연결되지 않은 경우 런타임은 IActionOnCLREvent::OnEvent를 호출하고 MDAInfo 인스턴스에 대한 포인터를 data 매개 변수로 전달합니다.

호스트는 MDA를 활성화하고 MDA가 활성화될 때 알림을 받도록 선택할 수 있습니다. 이렇게 하면 호스트가 기본 동작을 재정의하고 이벤트를 발생시킨 관리형 스레드를 중단하여 프로세스 상태가 손상되지 않도록 할 수 있습니다. MDA 사용에 대한 자세한 내용은 관리형 디버깅 도우미로 오류 진단을 참조하세요.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: MSCorEE.idl

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

.NET Framework 버전: 2.0부터 사용 가능

참고 항목