_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.