gcManagedToUnmanaged MDA
O gcManagedToUnmanaged Assistente de depuração gerenciada (MDA) faz com que uma coleta de lixo, sempre que um transições do segmento 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 com. O objeto COM parece ter sido lançado. A violação de acesso é determinística.
Causa
Se um componente não gerenciado não estiver corretamente um objeto COM gerenciado de contagem de referência, o runtime pode coletar um objeto gerenciado exposto a COM quando o componente não gerenciado ainda mantém uma referência ao objeto. As chamadas de tempo de execução Release durante as coletas de lixo, assim, se o componente de usuário usa o objeto antes da coleta de lixo, em seguida, ele será não ainda foram coletado. Esta é a origem do que o nondeterminism.
Resolução
Este Assistente de ativação reduz o tempo entre quando o objeto é qualificado para coleta e Release é chamado, ajudando a rastrear qual componente não gerenciado primeiro tenta acessar o objeto coletados.
Efeito sobre o tempo de execução.
Faz uma coleta de lixo, sempre que um transições do segmento 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
Referência
Conceitos
Diagnosticar erros com assistentes de depuração gerenciada