Compartilhar via


gcUnmanagedToManaged MDA

O gcUnmanagedToManaged Assistente de depuração gerenciada (MDA) faz com que uma coleta de lixo, sempre que um transições do segmento de não gerenciado em gerenciado código.

Sintomas

Um aplicativo chamar de componentes de usuário não gerenciado em execução usando a plataforma e COM está causando uma violação de acesso não determinístico no CLR.

Causa

Se um aplicativo estiver executando os componentes não gerenciados do usuário, em seguida, esses componentes podem ter corrompido o heap do coletor de lixo. Isso causa uma violação de acesso no CLR, quando o coletor de lixo tentar movimentar o gráfico do objeto.

Resolução

Este Assistente de ativação reduz o tempo entre quando o componente não gerenciado corrompe o heap do coletor de lixo e quando a violação de acesso acontece, forçando uma coleta de lixo para ocorrer antes de cada transição gerenciada.

Efeito sobre o tempo de execução.

Faz uma coleta de lixo, sempre que o código de transições de um segmento de não gerenciado em gerenciado.

Saída

Este MDA não produz nenhuma saída.

Configuração

<mdaConfig>
  <assistants>
    <gcUnmanagedToManaged/>
  </assistants>
</mdaConfig>

Consulte também

Referência

gcManagedToUnmanaged MDA

MarshalAsAttribute

Conceitos

Diagnosticar erros com assistentes de depuração gerenciada

Interop Marshaling

Outros recursos

Interoperabilidade