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


gcUnmanagedToManaged MDA

Примечание.

Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

Помощник по отладке управляемого кода (MDA) gcUnmanagedToManaged вызывает сбор мусора каждый раз, когда поток переходит из неуправляемого в управляемый код.

Симптомы

Приложение, запускающее неуправляемые пользовательские компоненты с помощью модели СОМ и вызова платформы, является причиной недетерминированного нарушения прав доступа в среде CLR.

Причина

Если приложение выполняет неуправляемые пользовательские компоненты, эти компоненты могут повредить кучу сборки мусора. Это приводит к нарушению прав доступа в среде CLR при попытке сборщика мусора пройти граф объекта.

Разрешение

Включение этого помощника уменьшает время между тем, когда неуправляемый компонент повреждает кучу сборки мусора, и тем, когда происходит нарушение прав доступа принудительным выполнением сборки мусора перед каждой управляемой передачей.

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

Вызывает сборку мусора каждый раз, когда поток переходит из неуправляемого в управляемый код.

Выходные данные

Данный MDA не дает результатов.

Настройка

<mdaConfig>
  <assistants>
    <gcUnmanagedToManaged/>
  </assistants>
</mdaConfig>

См. также