Помощник по отладке управляемого кода reportAvOnComRelease
Примечание.
Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.
Помощник отладки управляемого кода (MDA) reportAvOnComRelease
активируется при возникновении исключений, вызванных ошибками подсчета пользовательских ссылок при выполнении COM-взаимодействия и использовании метода Release или ReleaseComObject в сочетании с необработанными вызовами COM.
Симптомы
Нарушения прав доступа и повреждение памяти.
Причина
Иногда исключение возникает в связи с ошибками подсчета пользовательских ссылок при выполнении COM-взаимодействия и использовании метода Release или ReleaseComObject в сочетании с необработанными вызовами COM. Обычно это исключение отменяется, так как в противном случае в среде CLR произойдет нарушение прав доступа, и работа среды будет завершена. Когда этот помощник включен, такие исключения вместо простой отмены можно обнаруживать и выводить в отчетах.
Разрешение
Изучите свой код подсчета ссылок для поиска ошибок и проверки собственных клиентов объекта на наличие ошибок подсчета ссылок.
Влияние на среду выполнения
Доступно два режима. Если атрибут allowAv
имеет значение true
, помощник запрещает среде выполнения отменить нарушение прав доступа. Если allowAv
имеет значение false
, которое используется по умолчанию, среды выполнения отменяет нарушение прав доступа, однако пользователь получает предупреждение о возникновении и отмене исключения.
Выходные данные
Когда это возможно, выходные данные содержат исходный vtable указателя интерфейса COM. В противном случае отображается информационное сообщение.
Настройка
<mdaConfig>
<assistants>
<reportAvOnComRelease />
</assistants>
</mdaConfig>