다음을 통해 공유


MDAInfo 구조체

MDA(관리 디버깅 도우미) 만들기를 트리거하는 Event_MDAFired 이벤트에 대한 자세한 정보를 제공합니다.

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

멤버

멤버

설명

lpMDACaption

현재 MDA의 제목입니다. 이 제목은 Event_MDAFired 이벤트를 트리거한 오류 유형을 설명합니다.

lpMDAMessage

현재 MDA에서 제공하는 출력 메시지입니다.

설명

MDA(관리 디버깅 도우미)는 CLR(공용 언어 런타임)과 함께 사용되어 런타임 실행 엔진에서 발생한 문제를 식별하거나 엔진 상태에 대한 추가 정보를 덤프하는 등의 작업을 도와 주는 디버깅 도우미입니다. MDA에서는 트래핑하기 어려운 이벤트에 대한 XML 메시지를 생성하며, 관리 코드와 비관리 코드 간의 전환을 디버깅하는 데 특히 유용합니다.

MDA 만들기를 트리거하는 이벤트가 발생하면 런타임에서는 다음 단계에 따라 작업을 수행합니다.

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

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

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

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: MSCorEE.idl

라이브러리: MSCorEE.dll에 리소스로 포함됨

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

참고 항목

개념

관리 디버깅 도우미를 사용하여 오류 진단

기타 리소스

호스팅 구조체