У меня есть приложение .NET, которое взаимодействует с нативной DLL со следующими слоями.
a) API C ++ GetNames () возвращает список экземпляров wchar_t
б) C ++ / CLI API. Вызывает код GetNames2 () в C ++ API, маршаллизирует список wchar в строку .NET, возвращает этот список строк .NET
c) управляемый код C #, вызывающий API-интерфейс GetNames2 () уровня взаимодействия и отображающий список строк
Я вызываю CoTaskMemFree API на уровне взаимодействия, чтобы освободить нативные строки wchar. Однако мне просто интересно, как увидеть утечку памяти, вызванную отсутствующим вызовом CoTaskMemFree. Поэтому я закомментировал вызов CoTaskMemFree. В этом случае я понимаю, что если я присоединяю команду windbg и запускаю! Address -summary, любые выделения, выполненные на собственной стороне (которые не были освобождены), должны отображаться в RegionUsageHeap, но, похоже, не сообщают об этом. Любые идеи, как я могу увидеть использование собственной памяти (в контексте управляемого кода) в windbg?