MDA de invalidGCHandleCookie
Nota:
Este artículo es específico de .NET Framework. No se aplica a implementaciones más recientes de .NET, incluidas .NET 6 y versiones posteriores.
El Asistente para la depuración administrada (MDA) invalidGCHandleCookie
se activa cuando se intenta realizar la conversión de una cookie IntPtr no válida a un GCHandle.
Síntomas
Comportamiento indefinido, como infracciones de acceso y daños en la memoria, al intentar usar o recuperar GCHandle desde IntPtr.
Causa
La cookie probablemente no es válida porque no se creó originalmente desde un GCHandle, representa un GCHandle que ya se ha liberado, es una cookie de un GCHandle en un dominio de aplicación diferente, o bien se serializó en código nativo como GCHandle pero se volvió a pasar al CLR como IntPtr, donde se intentó realizar una conversión.
Solución
Especifique una cookie de IntPtr válida para el GCHandle.
Efecto en el Runtime
Cuando se habilita este MDA, el depurador ya no es capaz de realizar un seguimiento de las raíces hasta sus objetos porque los valores de cookie que se pasan son diferentes a los que se devuelven cuando el MDA no está habilitado.
Output
Se notifica el valor de la cookie de IntPtr no válida.
Configuración
<mdaConfig>
<assistants>
<invalidGCHandleCookie />
</assistants>
</mdaConfig>