gcUnmanagedToManaged MDA

Note

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 gcUnmanagedToManaged Asistente para depuración administrada (MDA) provoca una recolección de elementos no utilizados cada vez que un subproceso pasa de no administrado a código administrado.

Síntomas

Una aplicación que ejecuta componentes de usuario no administrados mediante COM e invocación de plataforma está causando una infracción de acceso no determinista en CLR.

Causa

Si una aplicación ejecuta componentes de usuario no administrados, es posible que esos componentes hayan dañado el montón recopilado por elementos no utilizados. Esto provoca una infracción de acceso en CLR cuando el recolector de elementos no utilizados intenta recorrer el gráfico de objetos.

Resolución

Al habilitar este asistente, se reduce el tiempo entre el momento en que el componente no administrado daña el montón recopilado por elementos no utilizados y cuando se produce la infracción de acceso al forzar que se produzca una recolección de elementos no utilizados antes de cada transición administrada.

Efecto en el tiempo de ejecución

Provoca una recolección de elementos no utilizados cada vez que un subproceso pasa de un código no administrado a código administrado.

Output

Este MDA no genera ninguna salida.

Configuration

<mdaConfig>
  <assistants>
    <gcUnmanagedToManaged/>
  </assistants>
</mdaConfig>

Consulte también