MDA reportAvOnComRelease

Note

Este artigo é específico para .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.

O reportAvOnComRelease MDA (assistente de depuração gerenciada) é ativado quando exceções são geradas devido a erros de contagem de referência do usuário ao executar a interoperabilidade COM e usar o Release método ou ReleaseComObject combinado com chamadas COM brutas.

Symptoms

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

Cause

Ocasionalmente, uma exceção é gerada devido a erros de contagem de referência do usuário ao executar a interoperabilidade COM e usar o Release método ou ReleaseComObject combinado com chamadas COM brutas. Normalmente, essa exceção é descartada porque não fazer isso causaria uma violação de acesso no CLR, reduzindo-a. Quando esse assistente está habilitado, essas exceções podem ser detectadas e relatadas em vez de serem simplesmente descartadas.

Resolução

Examine o código de contagem de referências e pesquise erros, bem como examine os clientes nativos do objeto para obter erros de contagem de referência.

Efeito no Runtime

Dois modos estão disponíveis. Se o allowAv atributo for true, o assistente impedirá que o runtime descarte a violação de acesso. Se allowAv for false, que é o padrão, o runtime descarta a violação de acesso, mas uma mensagem de aviso é relatada ao usuário para indicar que uma exceção foi lançada e descartada.

Saída

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

Configuração

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

Consulte também