Compartir a través de


MDA de gcUnmanagedToManaged

El asistente para la depuración administrada (MDA) de gcUnmanagedToManaged hace que se produzca una recolección de elementos no utilizados cada vez que un subproceso cambia de código no administrado a código administrado.

Síntomas

Una aplicación que ejecuta componentes de usuario no administrados mediante COM y la invocación de una plataforma produce una infracción de acceso no determinista en CLR.

Motivo

Si una aplicación está ejecutando componentes de usuario no administrados, esos componentes podrían haber dañado la pila de recolección de elementos no utilizados. Esto produce una infracción de acceso en el CLR cuando el recolector de elementos no utilizados intenta desplazarse por el gráfico de objetos.

Resolución

La habilitación de este asistente reduce el tiempo entre cuando el componente no administrado daña la pila de recolección de elementos no utilizados y cuando tiene lugar la infracción de acceso forzando a que la recolección de elementos no utilizados tenga lugar antes de cada transición administrada.

Efecto en tiempo de ejecución

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

Output

Este MDA no genera ningún resultado.

Configuración

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

Vea también

Referencia

MDA de gcManagedToUnmanaged

MarshalAsAttribute

Conceptos

Diagnóstico de errores con ayudantes de depuraciones administradas

Cálculo de referencias de interoperabilidad

Otros recursos

Interoperabilidad