Condividi tramite


MDA gcUnmanagedToManaged

Nota

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

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

Sintomi

Un'applicazione in cui vengono eseguiti componenti utente non gestiti mediante platform invoke e COM sta causando una violazione di accesso non deterministico in CLR.

Causa

Se in un'applicazione sono in esecuzione componenti utente non gestiti, è possibile che questi ultimi abbiano danneggiato l'heap sottoposto a Garbage Collection, provocando una violazione di accesso in CLR al tentativo del Garabage Collector di scorrere l'oggetto grafico.

Risoluzione

L'abilitazione di questo assistente riduce il periodo compreso tra il danneggiamento dell'heap sottoposto a Garbage Collection da parte del componente non gestito e la generazione della violazione di accesso mediante l'imposizione di un'operazione di Garbage Collection prima di ogni transizione gestita.

Effetto sull'ambiente di esecuzione

Viene causata una Garbage Collection ogni volta che un thread passa dal codice non gestito al codice gestito.

Output

Questo assistente al debug gestito non produce output.

Impostazione

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

Vedi anche