Rational Purify не может перейти на утечки памяти - PullRequest
0 голосов
/ 08 августа 2008

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

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

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

Ответы [ 5 ]

3 голосов
/ 03 апреля 2009

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

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

3 голосов
/ 22 октября 2008

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

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

3 голосов
/ 17 сентября 2008

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

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

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

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

2 голосов
/ 08 сентября 2008

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

2 голосов
/ 08 августа 2008

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

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

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

...