다음을 통해 공유


marshalCleanupError MDA

참고 항목

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

marshalCleanupError MDA(관리 디버깅 도우미)는 네이티브 코드 경계와 관리 코드 경계 간에 데이터 형식을 마샬링하는 데 사용되는 임시 구조 및 메모리를 정리하려고 하는 동안 CLR(공용 언어 런타임)에 오류가 발생하면 활성화됩니다.

증상

네이티브 및 관리 코드 변환을 수행할 때 메모리 누수가 발생하고 런타임 상태(예: 스레드 문화권)가 복원되지 않거나 SafeHandle 정리에서 오류가 발생합니다.

원인

임시 구조를 정리하는 동안 예기치 않은 오류가 발생했습니다.

해결

모든 SafeHandle 소멸자, 종료자 및 사용자 지정 마샬러 구현에 오류가 있는지 검토합니다.

런타임에 대한 영향

이 MDA는 CLR에 아무런 영향을 미치지 않습니다.

출력

정리 중에 실패한 작업을 보고하는 메시지입니다.

구성

<mdaConfig>
  <assistants>
    <marshalCleanupError />
  </assistants>
</mdaConfig>

참고 항목