LMDBG

Skjermbilde programvare:
LMDBG
Prog.varedetaljer:
Versjon: 1.2.0
Last opp dato: 20 Feb 15
Utvikler: Aleksey Cheusov
Lisens: Gratis
Popularitet: 16

Rating: nan/5 (Total Votes: 0)

LMDBG er et program som kan oppdage minne leaksand doble frigjør. & Nbsp; Men i motsetning til andre, genererer LMDBG * FULL * stacktracesand skiller logger fra analyse thusallowing å analysere et program på per-modul basis.
- lmdbg-run er en hoved lmdbg verktøyet. Det kjører en applikasjon og oppretter en loggfil (eller FIFO) hvor alle kalt malloc / calloc / realloc / gratis / memalign / posix_memalign besvergelser er registrert med sine innspill (bytes teller, pekeren), utgang (pekeren) og (!!! uniques funksjonen !!!) FULL STACKTRACE (pekere).
Eksempel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat tester / 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; returnere 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 -g -o _test2 tester / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg drevne -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; $
MERK: Full stacktrace lar deg analysere din søknad, dvs. at du kan oppdage hva blokker / komponenter krever mer minne enn andre og hvorfor. lmdbg-sym er et svært viktig verktøy for dette, se nedenfor.
- lmdbg-lekkasjer analyserer en loggfil generert av lmdbg drevet og utgang alle funnet minnelekkasjer
Eksempel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-lekkasjer _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 konverterer adresser til source.c: 999 hvis det er mulig
Eksempel (gdb (1) er i aksjon):
& 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; tester / test2.c: 8 hoved
& 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; tester / test2.c: 9 hoved
& 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; tester / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Hoved
& 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; tester / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Hoved
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Eksempel (addr2line (1) fungerer her):
& 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; tester / 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; tester / 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; tester / 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; tester / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps eller hopper over systemminnelekkasjer funnet i libc, libdl, C ++ stl etc. Se prøver / lmdbg * .conf filer. Standard config filer er: ~ / .lmdbg.conf og /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-lekkasjer + lmdbg-sym + lmdbg-sysleaks
Det er lmdbg er alt-i-ett høyere nivå verktøy.
Eksempel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Minnelekkasjer ble funnet og reddet til fil '_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; tester / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Hoved
& 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; tester / test2.c: 8 hoved
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Hva er nytt i denne utgaven:

  • lmdbg-sym ikke lenger segfaults grunn av problemer med stacktrace (3).
  • En mye enklere og riktig adresse konvertering metoden ble lagt til.
  • Det var signifikante speedups grunn av optimaliseringer for gdb.
  • I lmdbg drevne Glibc malloc kroker er ikke lenger i bruk.
  • lmdbg egen kode er ikke inkludert i stacktraces.
  • En ny N alternativet ble lagt, og det v alternativet fikk en mindre fix.
  • lmdbg-stat mottatt feilrettinger for en NULL dereference som dukket opp hvis et gratis (3) eller realloc (3) stacktrace var uten en passende malloc / realloc (3) stacktrace.
  • Det var andre mindre feilrettinger og forbedringer, forbedringer i regresjon tester, og forbedringer i stacktrace (3).

Hva er nytt i versjon 1.1.0:.

  • En fix i regresjonstester
  • lmdbg-run: null adresser fjernes fra stacktraces generert av glibc er tilbakesporing (3)
  • .
  • Dette løser hevder i lmdbg-stat (1).
  • Double & quot; 0x & quot; problemstillinger i & quot; info seksjon & quot; ble løst (sett på NetBSD).
  • tilbakesporing (3) fra libexecinfo (hvis tilgjengelig) brukes i stedet for den innebygde gjennomføringen.
  • lmdbg-sym:. Noen bugs ble fikset i konvertering av adresser til symboler
  • lmdbg-statistikk: ufullstendig lese linjer blir nå ignorert, så det er ikke mer hevde (3) er når et program blir feilsøkt blir drept
  • .
  • Et alternativ implementering skrevet i awk ble fjernet.

Hva er nytt i versjon 0.17.0:

  • Denne versjonen legger en rekke forbedringer og feilrettinger i manualsider, nye evner i lmdbg, lmdbg-løp, og lmdbg-sym, og mindre feilrettinger til lmdbg-stat.
  • er lmdbg nå en meta verktøy som er i stand til å gjøre mange flere ting, ikke bare finne minnelekkasjer.

Hva er nytt i versjon 0.15.1:

  • Logging av calloc (3) besvergelser er deaktivert på glibc-baserte systemer (Linux, GNU / kFreeBSD, og ​​kanskje andre) fordi lmdbg drevne mislykkes på dem.
  • Mindre clean-ups, rettinger og forbedringer. mk konfigurere & gt;. = 0,20 er nødvendig for å bygge

Hva er nytt i versjon 0.14.0:

  • Nye verktøy: lmdbg-stat, lmdbg-grep og lmdbg-sort for innsamling og analyse av statistisk informasjon om minnetildelinger.
  • lmdbg-run: nye muligheter for lmdbg-run. -S Og -M for generering forkortede stacktraces
  • lmdbg-sym:. Nytt alternativ -p for å skaffe program navn fra lmdbg drevne utgang
  • fix: 'mkcmake test' fjerner sine midlertidige filer
  • .

Lignende programvare

Nemiver
Nemiver

17 Feb 15

Fenris
Fenris

3 Jun 15

termdebug
termdebug

20 Feb 15

PyChecker
PyChecker

11 May 15

Annen programvare fra utvikleren Aleksey Cheusov

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Kommentarer til LMDBG

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!