Partilhar via


relatórioAvOnComRelease MDA

Nota

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 reportAvOnComRelease assistente de depuração gerenciado (MDA) é ativado quando exceções são lançadas devido a erros de contagem de referência do usuário ao executar interoperabilidade COM e usar o Release método ou ReleaseComObject combinado com chamadas COM brutas.

Sintomas

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

Motivo

Ocasionalmente, uma exceção é lançada 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, derrubando-o. Quando este assistente está ativado, essas exceções podem ser detetadas e relatadas em vez de serem simplesmente descartadas.

Resolução

Examine seu código de contagem de referência e procure erros, bem como examine os clientes nativos de seu objeto em busca de erros de contagem de referência.

Efeito no tempo de execução

Dois modos estão disponíveis. 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 tempo de execução 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 o 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