Compartilhar via


invalidGCHandleCookie MDA

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

Sintomas

Indefinido de comportamento, como violações de acesso e corrupção de memória ao tentar usar ou recuperar um GCHandle de um IntPtr.

Causa

O cookie é provavelmente inválido porque não foi criado originalmente de uma GCHandle, representa um GCHandle que já tinha sido liberada, o que é um cookie para um GCHandle em um domínio de aplicativo diferente, ou que foi empacotado para código nativo, como um GCHandle mas passado de volta para o CLR como um IntPtr, onde foi tentada uma conversão.

Resolução

Especificar um usuário válido IntPtr o cookie para o GCHandle.

Efeito sobre o tempo de execução.

Quando este MDA está habilitado, o depurador não está mais capaz de rastrear as raízes de volta para seus objetos, porque os valores de cookie passados de volta são diferentes daqueles retornado quando o MDA não está habilitado.

Saída

O inválido IntPtr o valor de cookie é informado.

Configuração

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

Consulte também

Referência

FromIntPtr

GCHandle

Conceitos

Diagnosticar erros com assistentes de depuração gerenciada