Rational Purify не может обнаружить утечки памяти

StackOverflow https://stackoverflow.com/questions/5509

  •  08-06-2019
  •  | 
  •  

Вопрос

Поэтому моя компания использует восхитительно глючную программу под названием Rational Purify (как плагин к Microsoft Visual Developer Studio) для управления утечками памяти.Программа устроена таким образом, чтобы вы могли нажать на утечку памяти после того, как вы с ней столкнулись, а затем перейти к строке, в которой произошла утечка.

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

Есть ли у кого-нибудь с опытом Purify какие-либо идеи, как я могу решить эту проблему, или у него есть хорошее руководство для просмотра?

Это было полезно?

Решение

Обычно у вас есть два варианта: один — исключить модули DLL из инструментов Purify, иногда это помогает.Во-вторых, это получить BoundsChecker, это значительно замедляет компиляцию инструментов, но уровень детализации на порядок выше.

Обычно мы используем Purify при регистрации, проверке работоспособности и BoundsChecker, когда знаем, что существует ошибка/сбой.

BoundsChecker имеет несколько приятных функций, например, только файлы инструментов A.cpp и B.cpp, исключая все остальное.

Имейте в виду, что ни одно из этих двух приложений не работает в 64-битных операционных системах, и BoundsChecker не будет установлен в 64-битной ОС.Самое неприятное, если вы перейдете на собственную 64-битную разработку с 32-битным обратным портом!

Другие советы

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

В конце концов вам понадобится много терпения, перестроений и немного удачи.

Purify поставляется со сценарием ScanVSSolutionForPurifyPlus.pl, который гарантирует, что файлы вашего проекта имеют все необходимые настройки для правильной работы Purify.Если вы еще не запускали его, попробуйте.

(Я лично использовал ScanVSSolutionForPurifyPlus.pl для большого решения, и он работал просто великолепно.Одно предостережение:когда ты даешь ему свое имя .sln файл, вам может потребоваться указать полный путь.)

Вы уверены, что у вас есть отладочная сборка?Или, скорее, у вас включены все PDB?Попробуйте WindDbg на своем исполняемом файле и проверьте с помощью команды !lmi, что видно.

Правильно ли инструментирован весь код?

Также рассмотрите возможность использования чего-то еще, например бесплатный визуальный детектор утечек или инструмент Microsoft LeakDiag.

Я использовал Purify около 5 лет назад.Тогда это было действительно нестабильно.Они продолжали обещать исправить все ошибки в «следующем выпуске».В конце концов мы отказались от этого.Можно только задаться вопросом, использовали ли они собственные инструменты контроля качества в своих продуктах.О, ирония...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top