gcUnmanagedToManaged MDA
Обновлен: Ноябрь 2007
Управляемый помощник по отладке (MDA) gcUnmanagedToManaged инициирует процесс сборки мусора каждый раз, когда происходит передача потока из неуправляемого в управляемый код.
Признаки
Приложение, выполняющее неуправляемый пользовательский компонент с помощью СОМ и вызова неуправляемого кода, является причиной недетерминированного нарушения прав доступа в среде CLR.
Причина
Если приложение выполняет неуправляемый пользовательский компонент, такие компоненты, возможно, повреждают кучу, в которой выполняется сборка мусора. Это является причиной нарушения прав доступа в среде CLR при попытке сборщика мусора обойти граф объекта.
Решение
Включение помощника уменьшает интервал времени с момента, когда неуправляемый компонент повреждает кучу, в которой производится сборка мусора, и когда происходит нарушение прав доступа, посредством принудительного вызова сборщика мусора перед каждой управляемой передачей.
Влияние на среду выполнения
Инициирует процесс сборки мусора каждый раз, когда выполняется потоковая передача из неуправляемого в управляемый код.
Результат
Данный MDA не дает результатов.
Конфигурация
<mdaConfig>
<assistants>
<gcUnmanagedToManaged/>
</assistants>
</mdaConfig>
См. также
Основные понятия
Диагностика ошибок посредством управляемых помощников по отладке
Общие сведения о маршалинге взаимодействия