Code Monkey home page Code Monkey logo

leaksdebug-in-c's Introduction

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

leaksdebug-in-c's People

Contributors

kirpichik avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

leaksdebug-in-c's Issues

Добавь теги (topics)

С тэгами твой убийца Валгринда будет выше в поисковой выдаче (без них он может и вовсе там не оказаться).
Могут подойти: memory-leaks, memory-allocation, memory-debugger

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.