Comparteix a través de


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>

Consulte también