Поделиться через


_CrtDumpMemoryLeaks

Формирует дампы всех блоков памяти в отладочной куче при возникновении утечки памяти (только отладочная версия).

int _CrtDumpMemoryLeaks( void );

Возвращаемое значение

_CrtDumpMemoryLeaks возвращает TRUE, если утечка памяти найдена. В противном случае функция возвращает значение false.

Заметки

Функция _CrtDumpMemoryLeaks определяет, произошла ли утечка памяти с начала выполнения программы. Когда утечка найдена, создается дамп данных заголовка отладки для всех объектов в куче в удобочитаемой для пользователя форме. Если _DEBUG не определен, то вызовы _CrtDumpMemoryLeaks удаляются во время предварительной обработки.

_CrtDumpMemoryLeaks часто вызывается в конце выполнения программы, чтобы убедиться, что вся память, выделенная приложением, была освобождена. Функцию можно вызывать автоматически при завершении работы программы, установив битовое поле _CRTDBG_LEAK_CHECK_DF флага _crtDbgFlag с помощью функции _CrtSetDbgFlag.

_CrtDumpMemoryLeaks вызывает _CrtMemCheckpoint для получения текущего состояния кучи, а затем проверяет состояние блоков, которые не были освобождены. Если встречается неосвобожденный блок, _CrtDumpMemoryLeaks вызывает функцию _CrtMemDumpAllObjectsSince, чтобы сбросить информацию для всех объектов, выделенных в куче с начала выполнения программы.

По умолчанию внутренние блоки времени выполнения C (_CRT_BLOCK) не включаются в операции создания дампов памяти. Функцию _CrtSetDbgFlag можно использовать для установки бита _CRTDBG_CHECK_CRT_DF флага _crtDbgFlag, чтобы включить эти блоки в процесс обнаружения утечки.

Дополнительные сведения о функциях состояния кучи и о структуре _CrtMemState см. в разделе Функции отчета о состоянии кучи. Дополнительные сведения о том, как происходит выделение, инициализация и управление блоками памяти в отладочной версии базовой кучи см. в разделе Сведения о куче отладки CRT.

Требования

Подпрограмма

Обязательный заголовок

_CrtDumpMemoryLeaks

<crtdbg.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Библиотеки

Только отладочные версии Библиотеки времени выполнения языка C.

Пример

Пример использования _CrtDumpMemoryLeaks см. в разделе crt_dbg1.

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Процедуры отладки