Partager via


Assistant Débogage managé invalidGCHandleCookie

Remarque

Cet article est spécifique au .NET Framework. Elle ne s’applique pas aux implémentations plus récentes de .NET, notamment .NET 6 et versions ultérieures.

L’Assistant Débogage managé invalidGCHandleCookie est activé quand 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, représente un GCHandle qui a déjà été libéré, est un cookie pour un GCHandle dans un domaine d’application différent ou a été marshalé en code natif en tant que GCHandle, mais retourné au CLR en tant qu’IntPtr, où une tentative de cast a été effectuée.

Résolution

Spécifiez un cookie IntPtr valide pour le GCHandle.

Effet sur le runtime

Quand cet Assistant Débogage managé est activé, le débogueur n’est plus en mesure de suivre les racines vers leurs objets, car les valeurs du cookie retournées sont différentes de celles retournées lorsque l’Assistant Débogage managé n’est pas activé.

Sortie

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

Configuration

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

Voir aussi