Compartilhar via


reportAvOnComRelease MDA

O reportAvOnComRelease Assistente de depuração gerenciada (MDA) é ativado quando as exceções são lançadas devido a contagem de erros durante a execução COM a interoperabilidade e o uso de referência de usuário do Release ou ReleaseComObject método combinado com chamadas COM brutos.

Sintomas

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

Causa

Ocasionalmente, uma exceção é lançada devido a contagem de erros durante a execução COM a interoperabilidade e o uso de referência de usuário do Release ou ReleaseComObject método combinado com chamadas COM brutos. Normalmente, essa exceção é descartada porque isso poderia causar uma violação de acesso no CLR, trazendo-o para baixo. Quando este assistente está habilitado, tais exceções podem ser detectadas e reportadas em vez de simplesmente ser descartado.

Resolução

Examine sua referência de código e procure por erros de contagem, bem como examinar os clientes nativos do seu objeto para erros de contagem de referência.

Efeito sobre o tempo de execução.

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

Saída

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

Configuração

<mdaConfig>
  <assistants>
    <reportAvOnComRelease allowAv="false"/>
  </assistants>
</mdaConfig>

Consulte também

Referência

MarshalAsAttribute

Conceitos

Diagnosticar erros com assistentes de depuração gerenciada

Interop Marshaling

Outros recursos

Interoperabilidade