Condividi tramite


MDA gcUnmanagedToManaged

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'attivazione 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 una operazione di Garbage Collection prima di ogni transizione gestita.

Effetto sul runtime

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.

Configurazione

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

Vedere anche

Riferimenti

MDA gcManagedToUnmanaged

MarshalAsAttribute

Concetti

Diagnostica degli errori tramite gli assistenti al debug gestito

Marshalling di interoperabilità

Altre risorse

Interoperabilità