Средство обнаружения повреждения кучи для C ++ - PullRequest
4 голосов
/ 14 января 2011

Есть ли какой-нибудь инструмент, помогающий мне обнаружить повреждение кучи в C ++?Я не могу предоставить исходный код, потому что это большой проект.Я могу использовать любой инструмент, который работает с Visual Studio или с Xcode.Инструмент должен хорошо работать с многопоточностью.Проблема не очень распространенная, она появляется спустя долгое время и только в очень особых случаях (они не были точно обнаружены!).

Спасибо!

РЕДАКТИРОВАТЬ:

Спасибо всем за ответы!Я протестирую инструменты и приму один ответ после тестов.

Ответы [ 4 ]

8 голосов
/ 14 января 2011

Valgrind - это инструмент defacto для создания инструментария памяти для собственного кода.Это, однако, не работает в Windows (OS X в порядке).

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

5 голосов
/ 14 января 2011

Средства отладки для Windows включают gflags и страницу кучи , которые помогают обнаруживать повреждения кучи.

2 голосов
/ 14 января 2011

В Mac OS X (я полагаю, это то, что вы имеете в виду, когда говорите Xcode), у вас уже есть целый набор инструментов для отладки памяти, например, http://developer.apple.com/library/mac/#releasenotes/DeveloperTools/RN-MallocOptions/index.html, что позволяет включить проверку кучи с помощью переменных среды.

1 голос
/ 14 января 2011

В Windows используется Проверка приложения

...