gcManagedToUnmanaged MDA
The gcManagedToUnmanaged Assistente de depuração gerenciada (MDA) faz com que uma coleta de lixo sempre que um thread transita de gerenciado para código não gerenciado.
Sintomas
Um componente de usuário não gerenciado lança uma violação de acesso ao tentar usar um objeto gerenciado que tinha sido exposto para COM.O objeto COM parece ter sido lançado.A violação de acesso é não determinísticas.
Causa
Se um componente não gerenciado não é referência contando um objeto COM gerenciado corretamente, o tempo de execução pode coletar um objeto gerenciado exposto a COM quando o componente não gerenciado ainda mantém uma referência ao objeto.O tempo de execução chama Release durante o lixo coleção s, portanto, se o componente de usuário usa o objeto antes do lixo coleção ocorre, e, em seguida, ele irá não ainda foram coletado. Essa é fonte do nondeterminism.
Resolução
Habilitar este assistente reduz o time entre quando o objeto é qualificado para coleção e Release é chamado, ajudando a rastrear o componente que não gerenciado primeiro tenta acessar o objeto coletado.
Efeito sobre o tempo de execução
Faz com que uma coleta de lixo sempre que um segmento de transições de gerenciado para código não gerenciado.
Saída
Este MDA não produz nenhuma saída.
Configuração
<mdaConfig>
<assistants>
<gcManagedToUnmanaged/>
</assistants>
</mdaConfig>
Consulte também
Conceitos
Diagnosticar erros com assistentes de depuração gerenciadas
Visão geral do empacotamento interop