reportAvOnComRelease MDA

Note

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 assistente reportAvOnComRelease de depuração gerido (MDA) é ativado quando exceções são lançadas devido a erros de contagem de referências do utilizador durante a realização de interoperabilidade COM e o uso do Release método ou ReleaseComObject combinado com chamadas COM brutas.

Sintomas

Violações de acesso e corrupção de memória.

Motivo

Por vezes, uma exceção é lançada devido a erros de contagem de referências do utilizador durante a realização de interoperação COM e o uso do Release método ou ReleaseComObject combinado com chamadas COM brutas. Normalmente, esta exceção é descartada porque não o fazer causaria uma violação de acesso no CLR, reduzindo-o. Quando este assistente está ativado, tais exceções podem ser detetadas e reportadas em vez de simplesmente descartadas.

Resolução

Examine o seu código de contagem de referências e procure erros, bem como os clientes nativos do seu objeto para erros de contagem de referências.

Efeito no tempo de execução

Estão disponíveis dois modos. Se o allowAv atributo for true, o assistente impede que o tempo de execução descarte a violação de acesso. Se allowAv for false, que é o padrão, o runtime descarta a violação de acesso, mas é reportada uma mensagem de aviso ao utilizador para indicar que uma exceção foi lançada e descartada.

Output

Se possível, a saída contém a vtable original do ponteiro de interface COM. Caso contrário, é exibida uma mensagem informativa.

Configuração

<mdaConfig>
  <assistants>
    <reportAvOnComRelease />
  </assistants>
</mdaConfig>

Ver também