LMDBG

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

Rating: 5.0/5 (Total Votes: 1)

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

Meliae
Meliae

11 May 15

PyChecker
PyChecker

11 May 15

otrace
otrace

20 Feb 15

Annen programvare fra utvikleren Aleksey Cheusov

DictEm
DictEm

20 Feb 15

runawk
runawk

19 Feb 15

mk-configure
mk-configure

20 Feb 15

Kommentarer til LMDBG

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