Skip to content
This repository has been archived by the owner on Sep 15, 2018. It is now read-only.
/ LeaksDebug-In-C Public archive

Отладчик утечек памяти для языка C.

License

Notifications You must be signed in to change notification settings

kirpichik/LeaksDebug-In-C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Leaks Debug in C language

Краткое описание

Это небольшая библиотека для поиска не освобожденных объектов на куче для языка C.

Как использовать

  1. Включите в свой проект файлы leaks_debug.h, leaks_debug.c.
  2. Во всех файлах, где вы выделяете/освобождаете память, замените #include <stdlib.h> на #include "leaks_debug.h".
  3. В местах, где вы хотите выводить список не освобожденных объектов, вызовите функцию _dumpMemoryLeaks().
  4. В конце программы вызовите функцию _freeHeapList(), чтобы очистить список не освобожденных объектов.
  5. В файле leaks_debug.h настройте нужный вам уровень отладки.
  6. Запускайте программу и латайте утечки!

Настройка режимов отладки

В файле leaks_debug.h есть #define DEBUG_HEAP <уровень>. Для настройки нужного уровня, замените <уровень> на нужное число(уровень отладки).

Доступные уровни отладки:

  • 0 - Отладка отключена, память не отслеживается, никаких дампов произведено не будет.
  • 1 - Включено отслеживание выделения и освобождения памяти.
  • 2 - Включено отслеживание выделения и освобождения памяти. При этом при каждом выделении/освобождении в stdout будет выводиться сообщение о месте выделения/освобождения объекта.

Вывод библиотеки:

При активном уровне отладки 2 будут показаны следующие сообщения:

При выделении памяти функцией malloc():

Malloc %номер объекта%:<0x%адрес объекта в памяти%> in file: "%путь до файла, в котором был вызван malloc%" at line %номер строки%

Например:

Malloc 1:<0x1002021b0> in file: "/dev/ccpp/LeaksDebug/LeaksDebug/main.c" at line 52

При освобождении функцией free():

Free %номер объекта%:<0x%адрес объекта в памяти%> in file: "%путь до файла, к котором был вызван malloc%" at line %номер строки%

Например:

Free 4:<0x100202970> in file: "/dev/ccpp/LeaksDebug/LeaksDebug/main.c" at line 66

Пример использования

Готовый пример использования можно посмотреть в файле main.c

About

Отладчик утечек памяти для языка C.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages