LMDBG

Screenshot Software:
LMDBG
Szczegóły programowe:
Wersja: 1.2.0
Filmu: 20 Feb 15
Wywoływacz: Aleksey Cheusov
Licencja: Wolny
Popularność: 16

Rating: nan/5 (Total Votes: 0)

LMDBG to aplikacja, która pozwala na wykrywanie pamięci leaksand podwójne FreeS. & Nbsp; Jednak, w przeciwieństwie do innych, LMDBG generuje * Full * stacktracesand oddziela zalogowaniu z analizy thusallowing do analizy wniosku na podstawie na module.
- lmdbg-run jest głównym narzędziem lmdbg. To uruchamia aplikację i tworzy plik dziennika (lub FIFO), gdzie wszyscy powołani malloc / calloc / realloc / wolne / memalign / posix_memalign inwokacje są zarejestrowane w ich wejścia (liczba bajtów, wskaźnik), wyjście (wskaźnik) i (!!! unikatów Funkcja !!!) PEŁNA (wskaźniki) StackTrace.
Przykład:
& Nbsp; & nbsp; & nbsp; & nbsp; Testy $ cat / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; #include
& Nbsp; & nbsp; & nbsp; & nbsp; int main ()
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; void * p1 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; void * p2 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p1 = malloc (555);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (p2, 666);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (p2, 777);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (p2, 888);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -g -o _test2 -O0 testów / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg prowadzony -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (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; $
Uwaga: Pełna StackTrace pozwala na analizę aplikacji, czyli można wykryć, co blokuje / elementy wymagają więcej pamięci niż inne i dlaczego. lmdbg-sym jest bardzo ważnym narzędziem do tego, patrz poniżej.
- lmdbg-przecieki analizuje plik dziennika generowanego przez lmdbg metę i wyjście wszystkie znalezione wycieki pamięci
Przykład:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-przecieki _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; malloc (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-sym konwertuje adresy source.c: 999, jeśli to możliwe
Przykład (gdb (1) jest w ruchu)
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (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; Testy / test2.c: 8 Głównym
& 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; Testy / test2.c: 9 Głównym
& 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; Testy / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; główny
& 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; Testy / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; główny
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Przykład (addr2line (1) działa tutaj):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym -a ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (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; Testy / 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; Testy / 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; Testy / 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; Testy / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps lub przeskoczenie systemu wycieki pamięci znaleźć w libc, libdl, C ++ stl itp Zobacz testów / lmdbg * .conf plików. Domyślne pliki konfiguracyjne to: ~ / .lmdbg.conf i /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-przecieki + lmdbg-sym + lmdbg-sysleaks
To jest lmdbg jest narzędziem all-in-one wyższy poziom.
Przykład:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Wycieki pamięci zostały wykryte i zapisane do pliku '_log "
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _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; Testy / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; główny
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (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; Testy / test2.c: 8 Głównym
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Co nowego w tym wydaniu:

  • lmdbg-sym nie zwraca błąd z powodu problemów z stacktrace (3).
  • dodano wiele prostsze i poprawna metoda konwersji adresu.
  • Nie było ze względu na znaczne speedups optymalizacje dla gdb.
  • W lmdbg metę, glibc haki malloc nie są już używane.
  • własny kod lmdbg nie jest wliczone w stacktraces.
  • Nowa opcja -N dodano, a opcja -v otrzymał drobne poprawki.
  • lmdbg-stat otrzymał poprawki na NULL, który pojawił dereference jeśli darmo (3) lub realloc (3) StackTrace był bez właściwe malloc / realloc (3) stacktrace.
  • Nie było innych drobnych poprawek i usprawnień, ulepszeń w testach regresji i usprawnienia w stacktrace (3).

Co nowego w wersji 1.1.0:.

  • Poprawka w testów regresji
  • lmdbg-run: zero adresy są usuwane z stacktraces generowanych przez backtrace glibc (3)
  • .
  • rozwiązuje ten twierdzi w lmdbg-stat (1).
  • Pokój & quot; 0x & quot; Zagadnienia w & quot; Informacje sekcji & quot; zostały ustalone (widoczne na NetBSD).
  • ślad czynności (3) z libexecinfo (jeśli jest dostępny) jest stosowany zamiast wbudowanej realizacji.
  • lmdbg-sym. Kilka błędy zostały naprawione w konwersji adresów symboli
  • lmdbg-stat: niekompletnie przeczytać linie są teraz ignorowane, więc nie ma więcej twierdzić, (3), gdy aplikacja s debugowanym zginął
  • .
  • alternatywna implementacja napisana w awk został usunięty.

Co nowego w wersji 0.17.0:

  • Ta wersja dodaje wiele ulepszeń i poprawek w strony podręcznika, nowe możliwości w lmdbg, lmdbg metę i lmdbg-sym i drobne poprawki do lmdbg-stat.
  • lmdbg jest teraz meta narzędzie, które jest w stanie zrobić wiele innych rzeczy, nie tylko znaleźć przecieki pamięci.

Co nowego w wersji 0.15.1:

  • Rejestrowanie calloc (3) wywołania jest wyłączone Systemy oparte na glibc (Linux, GNU / kFreeBSD, a może inne), ponieważ lmdbg nie prowadzony na nich.
  • Drobne porządki, poprawki i ulepszenia. mk-configure & gt;. = 0,20 jest wymagane dla budynku

Co nowego w wersji 0.14.0:

  • Nowe narzędzia: lmdbg-stat, lmdbg-grep i lmdbg sortowania gromadzenia i analizowania danych statystycznych o alokacji pamięci.
  • lmdbg-run: nowe opcje lmdbg metę. -S I -M do generowania skrócone stacktraces
  • lmdbg-sym. Nowa opcja -p do uzyskania nazwy programu z wyjścia lmdbg prowadzony jest
  • fix: "test mkcmake" usuwa swoje pliki tymczasowe
  • .

Podobne oprogramowanie

VimPdb
VimPdb

11 May 15

BuGLe
BuGLe

17 Feb 15

mpatrol
mpatrol

3 Jun 15

Inne programy z deweloperem Aleksey Cheusov

runawk
runawk

19 Feb 15

DictEm
DictEm

20 Feb 15

paexec
paexec

20 Feb 15

Komentarze do LMDBG

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!