Partilhar via


inválidoGCHandleCookie MDA

Nota

Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.

O invalidGCHandleCookie assistente de depuração gerenciado (MDA) é ativado quando uma conversão de um cookie inválido IntPtr para um GCHandle é tentada.

Sintomas

Comportamento indefinido, como violações de acesso e corrupção de memória ao tentar usar ou recuperar um GCHandle de um IntPtrarquivo .

Motivo

O cookie é provavelmente inválido porque não foi originalmente criado a partir de um GCHandle, representa um GCHandle que já foi liberado, é um cookie para um GCHandle em um domínio de aplicativo diferente, ou foi empacotado para código nativo como um GCHandle , mas passado de volta para o CLR como um IntPtr, onde um cast foi tentado.

Resolução

Especifique um cookie válido IntPtr para o GCHandle.

Efeito no tempo de execução

Quando esse MDA está habilitado, o depurador não é mais 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 inválido IntPtr é relatado.

Configuração

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

Consulte também