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>