Какой лучший инструмент (коммерческий / с открытым исходным кодом) вы использовали для динамического просмотра / анализа памяти приложения C ++?
РЕДАКТИРОВАТЬ: удалено «статическое», так как уже существует отличный вопрос по этой теме (спасибо, Юлиан!)
Для динамического анализа памяти определенно Valgrind .
Райан, если вы работаете в Windows и используете MSVC ++, тогда я могу порекомендовать BoundsChecker в рамках DevPartner VC ++ edition от Micro Focus.Он имеет функцию анализа памяти, называемую Просмотрщик ресурсов памяти.Вы используете это, чтобы отметить момент времени, а затем искать распределения с этого момента.Это плюс традиционное повреждение кучи и другие проверки памяти должны помочь вам динамически отслеживать проблемы кучи и стека в C ++.Бесстыдная вилка: я работаю в команде DevPartner.Ищите DPS 10.5 с 64-битной поддержкой в BoundsChecker для запуска 4 февраля 2011 года на http://www.DevPartner.com.
CPPCheck некоторое время хорошо мне служил.Это для статического анализа.
Microsoft FxCop для статического анализа (бесплатно).Parasoft Insure ($$$$) или IBM Purify ($$) для динамического анализа памяти.
Для статического просмотра кода KLOCWORKS хорош.
Для профилирования памяти, выявления утечек памяти, devpartner очень хорош.
Для статического анализа есть ответы здесь уже.
Valgrind в Linux
Дума на Windows