다음을 통해 공유


reportAvOnComRelease MDA

참고 항목

이 문서는 .NET Framework와 관련이 있습니다. .NET 6 이상 버전을 포함하여 .NET의 최신 구현에는 적용되지 않습니다.

reportAvOnComRelease MDA(관리 디버깅 도우미)는 COM interop를 수행하고 원시 COM 호출과 결합된 Release 또는 ReleaseComObject 메서드를 사용하는 동안 사용자 참조 계산 오류로 인해 예외가 throw되면 활성화됩니다.

증상

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

원인

경우에 따라, COM interop를 수행하고 원시 COM 호출과 결합된 Release 또는 ReleaseComObject 메서드를 사용하는 동안 사용자 참조 계산 오류로 인해 예외가 throw됩니다. 일반적으로 이 예외는 이렇게 하지 않으면 CLR에서 액세스 위반이 발생하여 CLR이 종료되기 때문에 무시됩니다. 이 도우미를 사용하도록 설정한 경우 이러한 예외는 단순히 무시되는 것이 아니라 감지 및 보고될 수 있습니다.

해결

참조 계산 코드를 검토하고 오류를 검색하며, 개체의 네이티브 클라이언트에 참조 계산 오류가 있는지 검토합니다.

런타임에 대한 영향

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

출력

가능한 경우 출력에 COM 인터페이스 포인터의 원래 vtable이 포함됩니다. 그러지 않으면 정보 메시지가 표시됩니다.

구성

<mdaConfig>
  <assistants>
    <reportAvOnComRelease />
  </assistants>
</mdaConfig>

참고 항목