Compartilhar via


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>

Confira também