Freigeben über


invalidGCHandleCookie-MDA

Der invalidGCHandleCookie-MDA (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) wird aktiviert, wenn versucht wird, ein ungültiges IntPtr-Cookie in ein GCHandle umzuwandeln.

Symptome

Undefiniertes Verhalten wie Zugriffsverletzungen und Speicherschäden beim Versuch, ein GCHandle aus einem IntPtr zu verwenden oder abzurufen.

Ursache

Das Cookie ist wahrscheinlich ungültig, weil es ursprünglich nicht von einem GCHandle erstellt wurde, ein bereits freigegebenes GCHandle darstellt, sich auf ein GCHandle in einer anderen Anwendungsdomäne bezieht oder als GCHandle in systemeigenen Code gemarshallt, jedoch als IntPtr wieder in die CLR zurückgegeben und dann dort eine Umwandlung versucht wurde.

Lösung

Geben Sie ein gültiges IntPtr-Cookie für das GCHandle an.

Auswirkungen auf die Laufzeit

Wenn dieser MDA aktiviert wird, kann der Debugger Wurzeln nicht mehr zu den Objekten zurückverfolgen, da sich die Werte der zurückgegebenen Cookies von denen ohne aktivierten MDA unterscheiden.

Output

Es wird der Wert des ungültigen IntPtr-Cookies gemeldet.

Konfiguration

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

Siehe auch

Referenz

FromIntPtr

GCHandle

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen