LMDBG это приложение, которое позволяет обнаруживать память leaksand двойные FreeS & NBSP;. Тем не менее, в отличие от других, LMDBG генерирует * * ПОЛНЫЙ stacktracesand отделяет вход от анализа thusallowing проанализировать заявку на каждого модуля основе.
- <Сильный> lmdbg перспективе является основным утилита lmdbg. Это запускает приложение и создает файл журнала (или FIFO), где все называется таНос / calloc / Realloc / бесплатно / memalign / posix_memalign вызовы регистрируются их ввода (байт рассчитывать, указатель), выход (указатель) и (!!! уникумов Функция !!!) Полный StackTrace (указатели).
Пример:
& NBSP; & NBSP; & NBSP; & NBSP; Тесты $ кошки / test2.c
& NBSP; & NBSP; & NBSP; & NBSP; #включают
& NBSP; & NBSP; & NBSP; & NBSP; Int основной ()
& NBSP; & NBSP; & NBSP; & NBSP; {
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; недействительными * p1 = NULL;
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; недействительными * р2 = NULL;
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; P1 = таНос (555);
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; р2 = Realloc (P2, 666);
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; р2 = Realloc (P2, 777);
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; р2 = Realloc (P2, 888);
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; вернуть 0;
& NBSP; & NBSP; & NBSP; & NBSP; }
& NBSP; & NBSP; & NBSP; & NBSP; $ GCC -O0 -g -o _test2 тесты / test2.c
& NBSP; & NBSP; & NBSP; & NBSP; $ Lmdbg перспективе -o _log ./_test2
& NBSP; & NBSP; & NBSP; & NBSP; $ Кошки _log
& NBSP; & NBSP; & NBSP; & NBSP; таНос (555) -> 0xbb901400
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5b03
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048738
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (NULL, 666) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804874e
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901800, 777) -> 0xbb901c00
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048764
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901c00, 888) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804877a
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; $
Примечание: Полный StackTrace позволяет анализировать ваше приложение, то есть вы можете обнаружить, что блокирует / компоненты требуют больше памяти, чем другие, и почему. lmdbg-сим является очень важным инструментом для этого, см. ниже
- lmdbg-утечки анализирует файл журнала, созданный по lmdbg перспективе и выхода все найденные утечки памяти
Пример:
& NBSP; & NBSP; & NBSP; & NBSP; $ Lmdbg-утечки _log & NBSP; & NBSP;
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901c00, 888) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804877a
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; таНос (555) -> 0xbb901400
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5b03
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048738
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; $
- <Сильный> lmdbg-сим превращает адреса в source.c: 999, если это возможно
Пример (GDB (1) находится в действии):
& NBSP; & NBSP; & NBSP; & NBSP; $ Lmdbg-сим ./_test2 _log
& NBSP; & NBSP; & NBSP; & NBSP; таНос (555) -> 0xbb901400
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5b03
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048738 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 8 Основной
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (NULL, 666) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804874e & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 9 Основной
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901800, 777) -> 0xbb901c00
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048764 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 10 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; главный
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901c00, 888) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804877a & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 11 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; главный
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; $
Пример (addr2line (1) работает здесь):
& NBSP; & NBSP; & NBSP; & NBSP; $ Lmdbg-сим -a ./_test2 _log
& NBSP; & NBSP; & NBSP; & NBSP; таНос (555) -> 0xbb901400
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5b03
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048738 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (NULL, 666) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804874e & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 9
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901800, 777) -> 0xbb901c00
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048764 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 10
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901c00, 888) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804877a & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 11
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; $
- <Сильный> lmdbg-sysleaks - отбирает или пропуск системы утечки памяти находится в LIBC, libdl C ++ STL и т.д. См тесты / lmdbg * .conf файлов. Файлы конфигурации по умолчанию, являются: ~ / .lmdbg.conf и /etc/lmdbg.conf
- lmdbg = lmdbg-Run + lmdbg-утечки + lmdbg-сим + lmdbg-sysleaks
Это lmdbg все-в-одном инструмент выше уровня.
Пример:
& NBSP; & NBSP; & NBSP; & NBSP; $ Lmdbg -v -o _log ./_test2
& NBSP; & NBSP; & NBSP; & NBSP; Утечки памяти были обнаружены и сохранены в файл '_log "
& NBSP; & NBSP; & NBSP; & NBSP; $ Кошки _log
& NBSP; & NBSP; & NBSP; & NBSP; Realloc (0xbb901c00, 888) -> 0xbb901800
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5a37
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x804877a & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 11 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; главный
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; таНос (555) -> 0xbb901400
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe58e8
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0xbbbe5b03
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048738 & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Тесты / test2.c: 8 Основной
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x8048584
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; 0x80484e7
& NBSP; & NBSP; & NBSP; & NBSP; $
Что нового В этом выпуске:
- lmdbg-сим больше не возвращает ошибку сегментации из-за проблем с StackTrace (3).
- был добавлен гораздо проще и правильный метод преобразования адресов.
- Были значительные ускорений из-за оптимизаций для GDB.
- В lmdbg перспективе, GLibC таНос крючки больше не используется.
- собственный код lmdbg, не будет включена в stacktraces.
- Новый -N опция была добавлена, и опция -v получил незначительные исправления.
- lmdbg-статистика получил исправления в NULL разыменования, который появился, если бесплатно (3) или перераспределить (3) StackTrace был без необходимости выделения памяти / Realloc (3) StackTrace.
- Были другие незначительные исправления и улучшения, усовершенствования в тестах регрессии, а также улучшения в StackTrace (3).
не
Что нового в версии 1.1.0:.
- Исправление в регрессионных тестов
- lmdbg трасса: ноль адреса удаляются из stacktraces порожденных трассировку GLibC в (3) .
- Это исправляет утверждает в lmdbg-стат (1).
- Дважды & Quot; 0x & Quot; вопросы в & Quot; инфо разделе & Quot; были зафиксированы (видно на NetBSD).
- трассировку (3) libexecinfo (если имеется) используется вместо встроенного в реализации.
- lmdbg-сим:. несколько ошибки были исправлены в преобразовании адресов для символов
- lmdbg-стат: полностью прочитать линии теперь игнорируется, так не больше нет утверждать (3) S, когда приложение отлаживается убит .
- Альтернативная реализация написано в AWK был удален.
Что нового в версии 0.17.0:
- Эта версия добавляет много улучшений и исправлений в страницы руководства, новые возможности в lmdbg, lmdbg перспективе, и lmdbg-сим, и мелкие исправления в lmdbg-стат.
- lmdbg сейчас мета инструмент, который способен сделать много больше вещей, не просто найти утечки памяти.
Что нового в версии 0.15.1:
- Ведение журнала calloc (3) вызовы отключен Glibc основе системы (Linux, GNU / kFreeBSD, и, возможно, другие), потому что lmdbg перспективе не будет работать на них.
- Небольшие чистые окна, исправления и усовершенствования. тк конфигурировать и GT;. = 0,20 требуется для построения
Что нового в версии 0.14.0:
- Новые инструменты: lmdbg-статистика, lmdbg-Grep и lmdbg сортировки для сбора и анализа статистической информации о распределении памяти.
- lmdbg трасса: новые возможности для lmdbg перспективе:. -S и -M для создания укороченные stacktraces
- lmdbg-сим:. Новая опция -p для получения имени программы с выходом lmdbg перспективе в
- Исправлена ошибка: 'mkcmake тест "удаляет временные файлы .
Комментарии не найдены