Partager via


Assistant Débogage managé invalidGCHandleCookie

L'Assistant Débogage managé (MDA, Managed Debugging Assistant) invalidGCHandleCookie est activé lorsqu'une tentative de conversion d'un cookie IntPtr non valide en un GCHandle est effectuée.

Symptômes

Comportement indéfini tel que les violations d'accès et l'altération de la mémoire lors des tentatives d'utilisation ou de récupération d'un GCHandle à partir d'un IntPtr.

Cause

Le cookie est probablement non valide car il n'a pas été initialement créé à partir d'un GCHandle, il représente un GCHandle qui a déjà été libéré, il est un cookie pour un GCHandle dans un domaine d'application différent ou il a été marshalé en code natif en tant que GCHandle mais a été retourné au CLR en tant que IntPtr, où une tentative de cast a été effectuée.

Solution

Spécifiez un cookie IntPtr valide pour le GCHandle.

Effet sur le runtime

Lorsque ce MDA est activé, le débogueur n'est plus en mesure de tracer les racines vers leurs objets car les valeurs du cookie retournées sont différentes de celles retournés lorsque le MDA n'est pas activé.

Sortie

La valeur du cookie IntPtr non valide est signalée.

Configuration

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

Voir aussi

Référence

FromIntPtr

GCHandle

Concepts

Diagnostic d'erreurs avec les Assistants de débogage managés