Обнаружение утечек памяти в коде C на Windows - PullRequest
1 голос
/ 21 февраля 2010

Я уже знаю, что могу отследить утечки памяти в моем коде с mtrace и valgrind в Linux, которые недоступны для Windows. Какую программу Windows вы бы порекомендовали отслеживать утечки памяти?

Я - пользователь Eclipse, и я работаю с C уже месяц или два, поэтому я предпочитаю удобное решение, а не что-то более продвинутое.

Ответы [ 5 ]

3 голосов
/ 21 февраля 2010

Application Verifier сделает это довольно хорошо, http://msdn.microsoft.com/en-us/library/ms220948.aspx

1 голос
/ 21 февраля 2010

Вы можете использовать _CrtDumpMemoryLeaks . Я полагаю, это похоже на mtrace.

Подробнее: http://www.codeguru.com/forum/showthread.php?t=312742

1 голос
/ 21 февраля 2010
0 голосов
/ 21 февраля 2010

Существует здравый способ сделать это, в строках C, для каждой пары malloc есть free, если нет утечки, то же самое для GlobalAlloc , VirtualAlloc, HeapAlloc, LocalAlloc, VirtualAllocEx ... есть связанная с ними пара ...Free, например, например, запуск HeapAlloc для переменной 'foo' и отсутствие HeapFree для 'foo', это утечка ...

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

0 голосов
/ 21 февраля 2010

Вы можете подключить, например, визуальный детектор утечки, как описано здесь: http://www.codeproject.com/KB/applications/visualleakdetector.aspx

Другим способом было бы подсчитать количество памяти, использованное до и после определенного действия. Как описано здесь: msdn.microsoft.com/en-us/library/aa293901%28VS.60%29.aspx Примерно так можно легко добавить, например, автоматические юнит-тесты.

...