15.5.2.5. Другие отладчики malloc

15.5.2.5. Другие отладчики malloc

Две статьи Cal Ericson в Linux Journal описывают mtrace и dmalloc, а также большинство других перечисленных ниже инструментов. Эти статьи Memory Leak Detection in Embedded Systems, выпуск 101[184], сентябрь 2002 г., и Memory Leak Detection in C++, выпуск 110[185], июнь 2003 г. Обе статьи доступны на веб-сайте Linux Journal.

Другие инструменты сходны по природе с описанными ранее.

ccmalloc

Замещающая malloc() библиотека, которая не нуждается в особой компиляции и может использоваться с С++. См. http://www.inf.ethz.ch/personal/biere/projects/ccmalloc.

malloc Марка Мораеса (Mark Moraes)

Старинная, но полнофункциональная библиотека замещения malloc(), предоставляющая возможности профилирования, трассировки и отладки. Вы можете получить ее с ftp://ftp.cs.toronto.edu/pub/moraes/malloc-1.18.tar.gz.

mpatrol

Пакет с большими возможностями настройки для отладки памяти и тестирования. См http://www.cbmamiga.demon.со.uk/mpatrol.

memwatch

Пакет, требующий использования специального заголовочного файла и опций времени компилирования. См. http://www.linkdata.se/sourcecode.html.

njamd

«Не просто еще один отладчик malloc» (Not Just Another Malloc Debugger). Эта библиотека не требует специальной компоновки с приложением; вместо этого она использует LD_PRELOAD для замены стандартных процедур. См. http://sourceforge.net/projects/njamd.

yamd

Похож на Electric Fence, но со многими дополнительными опциями. См. http://www3.hmc.edu/~neldredge/yamd.

Почти все из этих пакетов используют для точной настройки своего поведения переменные окружения. В таблице 15.1 на основе статей из Linux Journal сделана сводка различных пакетов.

Таблица 15.1. Сводка особенностей инструментов памяти

Инструмент ОС Заголовочный файл Модуль/ программа Многопоточность
ccmalloc Многотипная Нет Программа Нет
dmalloc Многотипная Необязательно Программа Да
efence Многотипная Нет Программа Нет
memwatch Многотипная Да Программа Нет
Moraes Многотипная Необязательно Программа Нет
mpatrol Многотипная Нет Программа Да
mtrace Linux (GLIBC) Да Модуль Нет
njamd Многотипная Нет Программа Нет
valgrind Linux (GLIBC) Нет Программа Да
yamd Linux, DJGPP Нет Программа Нет

Как видно, для отладки проблем динамической памяти доступен ряд выборов. На системах GNU/Linux и BSD один или более из этих инструментов, возможно, уже установлены, что избавляет вас от хлопот по их загрузке и построению.

Полезно также использовать для своей программы несколько инструментов подряд. Например, mtrace для обнаружения не освобождаемой памяти, a Electric Fence для перехвата доступа к недействительной памяти.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

И другие

Из книги Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения автора Коуберн Алистэр


Другие

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Другие N Сервер Описание 1 http://www.netease.com/~dce Delphi Components Crack (with Dr.Dai) Как там написано, "Following components ONLY for Delphi 3.0", остальное понять трудно, как и идентифицировать родной язык автора сайта, хотя по скриншотам разобраться что и где лежит вполне


21.5.4 Другие запросы

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

21.5.4 Другие запросы Оставшиеся запросы используются клиентом и сервером аналогичным способом. Данные могут быть переданы и получены через обычные запросы записи и чтения. Соединение может быть закрыто по запросу close. Существуют также специальные запросы send и recv,


Другие функции

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Другие функции Функция Краткое описание assert проверка утверждения о состоянии переменных getenv получить значение переменной среды (окружения) perror напечатать сообщение об ошибке putenv изменить значение переменной среды swab поменять местами два смежных


Другие игры

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Другие игры Как уже говорилось ранее, в документации MSDN имеется множество примеров различных игр. Если вы проявите настойчивость, то самостоятельно найдете эти примеры и сможете разобрать их. Также стоит посетить сайт CodeProject, где по адресу www.codeproject.com/netcf/#Games расположился


Другие

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Другие Для интерфейса с Firebird доступны некоторые другие наборы компонентов.Компоненты UIBЭто набор небольших по объему компонентов доступа к данным с открытыми кодами и драйверы DBXpress для Firebird, InterBase и Yaffil[164]. Это свободный набор под общей лицензией Mozilla. Данные компоненты


3.2.1. Библиотечные вызовы: malloc() , calloc() , realloc() , free()

Из книги Linux программирование в примерах автора Роббинс Арнольд

3.2.1. Библиотечные вызовы: malloc(), calloc(), realloc(), free() Динамическую память выделяют с помощью функций malloc() или calloc(). Эти функции возвращают указатели на выделенную память. Когда у вас есть блок памяти определенного первоначального размера, вы можете изменить его размер с помощью


15.5.2. Отладчики выделения памяти

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

15.5.2. Отладчики выделения памяти Игнорируя такие проблемы, как плохой дизайн программы, для любого крупномасштабного практического приложения единственной сложной задачей программиста на С является управление динамической памятью (посредством malloc(), realloc() и free()).Этот


Другие типы

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Другие типы      Этот раздел завершает рассмотрение основных типов данных. Некоторым читателям их число может показаться слишком большим. Остальные могут полагать, что описанных типов недостаточно; например, им захочется иметь булев тип или строковый тип данных. В


РАСПРЕДЕЛЕНИЕ ПАМЯТИ: malloc( ) И са11ос( )

Из книги Вопросы истории: UNIX, Linux, BSD и другие автора Федорчук Алексей Викторович

РАСПРЕДЕЛЕНИЕ ПАМЯТИ: malloc( ) И са11ос( )      Ваша программа должна предоставить достаточный объем памяти для запоминания используемых данных. Некоторые из этих ячеек памяти распределяются автоматически. Например, мы можем объявить char place[ ] = "Залив Свиной печенки";и будет


А.2.2. Проверка функции malloc()

Из книги автора

А.2.2. Проверка функции malloc() Функции выделения и освобождения памяти, имеющиеся в GNU-библиотеке языка С, способны обнаруживать факт записи в память до начала выделенной области, а также попытку освободить одну и ту же область дважды. Если задать переменную среды MALLOC_CHECK_


Г.3. Другие ресурсы

Из книги автора

Г.3. Другие ресурсы ? http://developer.intel.com. Здесь содержится информация о процессорах Intel, включая архитектуру x86 (IA32). Отметим очень полезные справочники встроенных ассемблерных инструкций.? http://www.amd.com. Здесь представлена аналогичная информация о процессорах AMD.? http://freshmeat.net.


Отладчики сценариев JavaScript

Из книги автора

Отладчики сценариев JavaScript Отладка представляет собой поиск и устранение ошибок. Часто процесс отладки может занимать большую часть времени разработки всей программы (или сценария). Ведь надежность и безошибочная работа программы зачастую даже важнее ее


А что же другие?

Из книги автора

А что же другие? Этот фрагмент истории десктопов был начат кратким рассказом о Xfce и ею же уместно его и завершить. Мы оставили её на уровне 3-й версии, которая, будучи переписана на основе библиотек Gtk, обрела статус свободной среды. Но на этом её история не закончилась.При