Поделиться через


Помощник по отладке управляемого кода reportAvOnComRelease

Обновлен: Ноябрь 2007

Помощник по отладке управляемого кода (MDA) reportAvOnComRelease активируется при возникновении исключений вследствие ошибок подсчета пользовательских ссылок при СОМ-взаимодействии и использования метода Release или ReleaseComObject в сочетании с необработанными вызовами СОМ.

Признаки

Нарушения прав доступа и повреждение памяти.

Причина

Иногда исключение возникает вследствие ошибки подсчета пользовательских ссылок при СОМ-взаимодействии и использования метода Release или ReleaseComObject вместе с необработанными вызовами СОМ Как правило, данное исключение удаляется, поскольку, если его не удалить, произойдет нарушение прав доступа в среде CLR, которое завершится системным сбоем. Если данный помощник включен, такие исключения будут не просто обнаружены и удалены, но сведения о них будут также выведены в отчете.

Решение

Следует изучить код подсчета ссылок и выявить ошибки, а также проверить собственные клиенты объекта на наличие ошибок подсчета ссылок.

Влияние на среду выполнения

Доступно два режима. Если атрибут allowAv имеет значение true, помощник не позволяет среде выполнения удалить сведения о нарушении прав доступа. Если атрибут allowAv имеет значение false (по умолчанию), среда выполнения удаляет сведения о нарушении прав доступа, однако выводит предупреждение о том, что исключение обнаружено и удалено.

Результат

Если возможно, результат содержит исходную таблицу виртуальных методов указателя СОМ-интерфейса. В противном случае выводится информационное сообщение.

Конфигурация

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

См. также

Основные понятия

Диагностика ошибок посредством управляемых помощников по отладке

Общие сведения о маршалинге взаимодействия

Ссылки

MarshalAsAttribute

Другие ресурсы

Взаимодействие