MDA invalidGCHandleCookie
Observação
Este artigo é específico para aplicativos .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.
O MDA (Assistente de Depuração Gerenciado) de invalidGCHandleCookie
é ativado quando há uma tentativa de conversão de um cookie IntPtr inválido em um GCHandle.
Sintomas
Um comportamento indefinido, tal como violações de acesso e corrupção de memória, durante a tentativa de usar ou recuperar um GCHandle de um IntPtr.
Causa
O cookie é provavelmente inválido porque ele não foi criado originalmente de um GCHandle, representa um GCHandle que já foi liberado, é um cookie para um GCHandle em um domínio do aplicativo diferente ou então foi realizado marshaling dele para código nativo como um GCHandle mas ele foi passado de volta para o CLR como um IntPtr, quando foi tentada uma conversão.
Resolução
Especifique um cookie IntPtr válido para o GCHandle.
Efeito sobre o runtime
Quando esse MDA está habilitado, o depurador não é capaz de rastrear as raízes de volta para seus objetos porque os valores de cookie passados de volta são diferentes daqueles retornados quando o MDA não está habilitado.
Saída
O valor do cookie IntPtr inválido é relatado.
Configuração
<mdaConfig>
<assistants>
<invalidGCHandleCookie />
</assistants>
</mdaConfig>