Condividi tramite


MDA invalidGCHandleCookie

Aggiornamento: novembre 2007

L'assistente al debug gestito invalidGCHandleCookie viene attivato quando viene effettuato un tentativo di conversione da un cookie IntPtr non valido in un GCHandle.

Sintomi

Un comportamento indefinito, come le violazioni di accesso e il danneggiamento della memoria, durante il tentativo di utilizzo o di recupero di un GCHandle da un IntPtr.

Causa

Il cookie probabilmente non è valido perché non è stato originariamente creato da un GCHandle, rappresenta un GCHandle già liberato, è il cookie di un GCHandle di un dominio applicazione diverso oppure è stato sottoposto a marshalling nel codice nativo come GCHandle, ma passato come IntPtr a CLR, dove è stato tentato un cast.

Risoluzione

Specificare un cookie IntPtr valido per GCHandle.

Effetto sul runtime

Quando questo assistente viene attivato, il debugger non è più in grado di ricondurre le radici ai relativi oggetti in quanto i valori del cookie passati sono diversi da quelli restituiti quando l'assistente in oggetto non è attivato.

Output

Il valore del cookie IntPtr non valido viene inserito nel report.

Configurazione

<mdaConfig>
  <assistants>
    <invalidGCHandleCookie />
  </assistants>
</mdaConfig>

Vedere anche

Concetti

Diagnostica degli errori tramite gli assistenti al debug gestito

Riferimenti

FromIntPtr

GCHandle