2010-05-04 22 views
7

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

ответ

4

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

+0

И если вы не используете ATL или подобные инструменты, начните сейчас и не используйте ручную обработку COM. –

3

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

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

Смежные вопросы