Condividi tramite


MDA gcUnmanagedToManaged

Aggiornamento: novembre 2007

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 richiami piattaforma 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

Concetti

Diagnostica degli errori tramite gli assistenti al debug gestito

Cenni preliminari sul marshalling di interoperabilità

Riferimenti

MDA gcManagedToUnmanaged

MarshalAsAttribute

Altre risorse

Interoperabilità