Дамп памяти процесса на диск для анализа на утечки памяти - PullRequest
0 голосов
/ 11 июня 2011

У меня 32-битное приложение msvc ++, работающее в производственной среде с утечкой памяти.В основном он будет работать в течение нескольких часов, пока не займет все 3 ГБ адресуемой памяти и не прекратит работу.

Я думал, что если бы был способ приостановить процесс и вывести его память на диск, я мог быпамяти, чтобы увидеть, есть ли какие-либо закономерности к тому, что он протекает.

Не уверен, возможно ли это вообще.Я просто бросаю науку в стену и смотрю, что прилипает.

Некоторый вклад будет высоко ценится.

Ответы [ 2 ]

2 голосов
/ 11 июня 2011

Это очень просто, если вы уверены, что у вас есть какие-то средства найти что-то полезное, анализируя кучу процесса.Все используемые инструменты являются бесплатными, и инструкции здесь: Файлы дампа

При этом, если бы вы могли просто запустить отладочную сборку некоторое время, CRT сделает все работа для вас.См. Обнаружение утечек памяти с помощью библиотеки CRT

0 голосов
/ 11 июня 2011

Для действительно быстрого пути Purify или DevPartner Studio обычно укажут вам прямо на утечку и покажут вам след от того, где оно было выделено, к тому, где оно было просочилось.Это также покажет довольно много других ошибок.

Использование встроенных в ЭЛТ инструментов прекрасно, если у вас есть время на это.Эти инструменты стоят денег, поэтому я полагаю, что вы взвесили стоимость времени, которое потребуется, чтобы отследить их с дампами памяти CRT и стоимостью лицензии.дно много быстро протекает.Я предпочитаю DevPartner, а не Purify, но, вероятно, потому что я использовал Purify только под Linux и нашел способ работать слишком громоздким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...