MDA de marshalCleanupError
Nota:
Este artículo es específico de .NET Framework. No se aplica a implementaciones más recientes de .NET, incluidas .NET 6 y versiones posteriores.
El asistente para la depuración administrada (MDA) marshalCleanupError
se activa cuando Common Language Runtime (CLR) detecta un error cuando se intenta limpiar la memoria y las estructuras temporales que se usan para serializar tipos de datos entre los límites del código nativo y administrado.
Síntomas
Se produce una fuga de memoria al realizar transiciones de código nativo y administrado, cuando no se restaura un estado de runtime (por ejemplo, una referencia cultural de subproceso) o si la limpieza de SafeHandle tiene errores.
Causa
Se produjo un error inesperado al limpiar las estructuras temporales.
Solución
Revise todas las SafeHandle de las implementaciones de destructor, finalizador y serializador personalizado para detectar errores.
Efecto en el Runtime
Este MDA no tiene ningún efecto en el CLR.
Output
Un mensaje que indica que se produjo un error en la operación durante la limpieza.
Configuración
<mdaConfig>
<assistants>
<marshalCleanupError />
</assistants>
</mdaConfig>