Compartilhar via


MDA reportAvOnComRelease

Observação

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

O MDA (Assistente para Depuração Gerenciada) do reportAvOnComRelease é ativado quando as exceções são lançadas por causa da contagem de erros pela referência do usuário durante a realização da interoperabilidade COM e do uso do método Release ou ReleaseComObject combinado com chamadas COM brutas.

Sintomas

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

Causa

Às vezes, uma exceção é lançada por causa da contagem de erros pela referência do usuário durante a realização da interoperabilidade COM e do uso do método Release ou ReleaseComObject combinado com chamadas COM brutas. Normalmente, essa exceção é descartada porque deixar de fazer isso causaria uma violação de acesso no CLR, desativando-o. Quando esse assistente é habilitado, essas exceções podem ser detectadas e relatadas em vez de ser simplesmente descartadas.

Resolução

Examine o código de contagem de referência e procure erros, também examine os clientes nativos do objeto em busca de erros de contagem de referência.

Efeito sobre o runtime

Há dois modos disponíveis. Se o atributo allowAv for true, o assistente evitará que o runtime descarte a violação de acesso. Se allowAv for false (o padrão), o runtime descartará a violação de acesso, mas uma mensagem de aviso será 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. Do contrário, é exibida uma mensagem informativa.

Configuração

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

Confira também