Как отследить утечку памяти COM - PullRequest
7 голосов
/ 04 мая 2010

Я пытаюсь отследить утечку памяти в COM-объекте, и я не вижу ничего явно неправильного. Возможно, я неправильно использую некоторые из оболочек COM, но мой стандартный инструментарий для поиска утечек памяти (AQtime) не помогает мне с COM. У кого-нибудь есть какие-нибудь хитрости / инструменты для отслеживания COM-памяти / утечки ссылок?

Ответы [ 2 ]

4 голосов
/ 04 мая 2010

Если вы используете ATL, вы можете определить _ATL_DEBUG_INTERFACES (см. Запись MSDN ).Это, безусловно, поможет вам отследить любые утечки интерфейсов, хотя, очевидно, это не поможет отследить любые утечки ресурсов внутри объекта.

3 голосов
/ 04 мая 2010

Проверьте, полностью ли освобождены объекты COM. Обычно AddRef + Release возвращает текущий счетчик ссылок для целей отладки (вы не должны полагаться на это для производственного кода).

В противном случае, просто общий совет: уменьшите количество кода - вы получаете утечку при создании и выпуске экземпляра? После определенного вызова метода?

...