Инструмент для обнаружения [закрытых] утечек памяти

10
задан Donal Fellows 18 May 2010 в 10:07
поделиться

4 ответа

Такие инструменты обычно инструмент исполняемый со своим собственным кодом. например, они заменяют каждый вызов malloc () и free () своими собственными функциями, которые позволяют им отслеживать каждое выделение.

В Visual Studio это можно сделать автоматически, используя только библиотеку времени выполнения C, используя функции из семейства _CrtDumpMemoryLeaks ()

8
ответ дан 3 December 2019 в 20:40
поделиться

Для базового обнаружения утечек достаточно подключиться к низкоуровневым процедурам выделения памяти, например, путем исправления malloc/free. Затем вы отслеживаете все выделения и впоследствии сообщаете о тех, которые не были освобождены в нужный момент, например, непосредственно перед выходом.

5
ответ дан 3 December 2019 в 20:40
поделиться

Для реальной работы valgrind работает достаточно хорошо. Он обнаруживает недопустимые операции чтения / записи и утечки памяти.

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

3
ответ дан 3 December 2019 в 20:40
поделиться

Вы можете поискать примеры кода некоторых BSD-реализаций инструментов управления памятью/профилирования. Например, http://code.google.com/p/google-perftools/wiki/GooglePerformanceTools

1
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: