다음을 통해 공유


reportAvOnComRelease MDA

원시 COM 호출과 함께 Release 또는 ReleaseComObject 메서드를 사용하여 COM Interop를 수행하는 동안 사용자 참조 횟수 오류로 인해 예외가 throw되는 경우 reportAvOnComRelease MDA(관리 디버깅 도우미)가 활성화됩니다.

증상

액세스 위반 및 메모리 손상이 발생합니다.

원인

원시 COM 호출과 함께 Release 또는 ReleaseComObject 메서드를 사용하여 COM Interop를 수행하는 동안 사용자 참조 횟수 오류로 인해 예외가 throw되는 경우가 있습니다. 일반적으로 이 예외는 무시됩니다. 이렇게 하지 않으면 CLR에 액세스 위반이 발생하여 CLR이 종료됩니다. 이 도우미를 사용하는 경우 이러한 예외를 감지하고 무시할 뿐 아니라 보고할 수 있습니다.

해결 방법

참조 횟수 코드를 검사하여 오류를 찾고 개체의 네이티브 클라이언트를 검사하여 참조 횟수 오류를 찾습니다.

런타임 효과

두 가지 모드를 사용할 수 있습니다. allowAv 특성이 true인 경우 도우미는 런타임이 액세스 위반을 무시하지 못하게 합니다. allowAv가 false(기본값)인 경우 런타임은 액세스 위반을 무시하지만 예외가 throw되어 무시되었음을 나타내는 경고 메시지를 사용자에게 보고합니다.

Output

가능한 경우 출력에 COM 인터페이스 포인터의 원래 vtable이 포함됩니다. 그렇지 않은 경우 알림 메시지가 표시됩니다.

구성

<mdaConfig>
  <assistants>
    <reportAvOnComRelease allowAv="false"/>
  </assistants>
</mdaConfig>

참고 항목

참조

MarshalAsAttribute

개념

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

Interop 마샬링

기타 리소스

상호 운용성