gcUnmanagedToManaged MDA

Note

Questo articolo è specifico per .NET Framework. Non si applica alle implementazioni più recenti di .NET, tra cui .NET 6 e versioni successive.

L'assistente gcUnmanagedToManaged al debug gestito causa un'operazione di Garbage Collection ogni volta che un thread passa da codice non gestito a codice gestito.

Symptoms

Un'applicazione che esegue componenti utente non gestiti tramite COM e platform invoke causa una violazione di accesso non deterministica in CLR.

Cause

Se un'applicazione esegue componenti utente non gestiti, questi componenti potrebbero aver danneggiato l'heap di Garbage Collection. In questo modo si verifica una violazione di accesso in CLR quando il Garbage Collector tenta di esaminare l'oggetto grafico.

Risoluzione

L'abilitazione di questo assistente riduce il tempo tra il momento in cui il componente non gestito danneggia l'heap di Garbage Collection e quando si verifica la violazione di accesso forzando un'operazione di Garbage Collection prima di ogni transizione gestita.

Effetto sul runtime

Determina un'operazione di Garbage Collection ogni volta che un thread passa da codice non gestito a codice gestito.

Risultato

Questo assistente al debug gestito non produce alcun output.

Configuration

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

Vedere anche