LMDBG

Software skärmdump:
LMDBG
Mjukvaruinformation:
Version: 1.2.0
Ladda upp dagen: 20 Feb 15
Utvecklare: Aleksey Cheusov
Licens: Gratis
Popularitet: 68

Rating: 5.0/5 (Total Votes: 1)

LMDBG är ett program som tillåter att upptäcka minne leaksand dubbla frigör. & Nbsp; Men till skillnad från andra, LMDBG genererar * FULL * stacktracesand separerar loggar från analys thusallowing att analysera ett program på per-modul basis.
- lmdbg-run är en huvud lmdbg verktyg. Den kör ett program och skapar en loggfil (eller FIFO) där alla kallas malloc / calloc / realloc / free / memalign / posix_memalign anrop registreras med sin ingång (byte räknas, pekare), utgång (pekare) och (!!! uniques funktionen !!!) FULL stacktrace (pekare).
Exempel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Katt 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; återvända 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 -g -o _test2 tester / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-run -o _Logg ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ Katt _Logg
& 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; $
OBS: Full stacktrace kan du analysera din ansökan, dvs du kan upptäcka vad block / komponenter kräver mer minne än andra och varför. lmdbg-sym är ett mycket viktigt verktyg för detta, se nedan.
- lmdbg-läckor analyserar en loggfil som genereras av lmdbg-run och output alla hittade minnesläckor
Exempel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-läckor _Logg & 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 konverterar adresser till source.c: 999 om det är möjligt
Exempel (gdb (1) är i aktion):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym ./_test2 _Logg
& 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 huvud
& 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 huvud
& 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; huvud
& 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; huvud
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Exempel (addr2line (1) fungerar här):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym -a ./_test2 _Logg
& 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 hoppar systemet minnesläckor som finns i libc, libdl, C ++ stl etc. Se tester / lmdbg * .conf filer. Standardkonfigurationsfiler är: ~ / .lmdbg.conf och /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-läckor + lmdbg-sym + lmdbg-sysleaks
Det är lmdbg är allt-i-ett verktyg högre nivå.
Exempel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _Logg ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Minnesläckor upptäcktes och sparas till filen "_Logg"
& Nbsp; & nbsp; & nbsp; & nbsp; $ Katt _Logg
& 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; huvud
& 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 huvud
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Vad är nytt i den här versionen:

  • lmdbg-sym inte längre segmenteringsfel grund av problem med stacktrace (3).
  • En mycket enklare och korrekt adress omräkningsmetod sattes.
  • Det fanns signifikanta uppsnabbningar grund av optimeringar för gdb.
  • I lmdbg-run, glibc malloc krokar används inte längre.
  • lmdbg egen kod ingår inte i stacktraces.
  • En ny N alternativet sattes och alternativet -v fått en mindre fix.
  • lmdbg-stat fått korrigeringar för ett NULL dereference som dök om en fri (3) eller realloc (3) stacktrace var utan ett lämpligt malloc / realloc (3) stacktrace.
  • Det fanns andra mindre korrigeringar och förbättringar, förbättringar i regressionstester, och förbättringar i stacktrace (3).

Vad är nytt i version 1.1.0:.

  • En fix i regressionstester
  • lmdbg-run: noll adresser tas bort från stacktraces genereras av glibc s bakåtspårning (3)
  • .
  • Detta fixar hävdar i lmdbg-stat (1).
  • Dubbel & quot; 0x & quot; frågor i & quot; inforuta & quot; fixerades (sett på NetBSD).
  • bakåtspårning (3) från libexecinfo (om tillgängligt) används i stället för den inbyggda genomförande.
  • lmdbg-sym:. Några buggar fixerades i konvertering av adresser till symboler
  • lmdbg-stat: ofullständigt läsa rader ignoreras nu, så det finns inga fler hävda (3) s när en ansökan debuggade dödas
  • .
  • En alternativ implementering skriven i awk togs bort.

Vad är nytt i version 0.17.0:

  • Denna version lägger en hel del förbättringar och fixar i manualsidor, nya möjligheter i lmdbg, lmdbg-run, och lmdbg-sym och mindre fixar att lmdbg-stat.
  • lmdbg är nu ett meta verktyg som kan göra många fler saker, inte bara hitta minnesläckor.

Vad är nytt i version 0.15.1:

  • Loggning av calloc (3) anrop är inaktiverad på glibc-baserade system (Linux, GNU / kFreeBSD, och kanske andra) eftersom lmdbg-run misslyckas på dem.
  • Mindre sanering, fixar och förbättringar. mk-configure & gt;. krävs = 0.20 för byggnaden

Vad är nytt i version 0.14.0:

  • Nya verktyg: lmdbg-stat, lmdbg-grep och lmdbg sortera för insamling och analys av statistisk information om minnesallokeringar.
  • lmdbg-run: nya alternativ för lmdbg-run:. -S Och -M för generering förkortade stacktraces
  • lmdbg-sym:. Nya alternativet -p för att få programnamn från lmdbg-run utgång
  • fix: "mkcmake test" tar bort sina temporära filer
  • .

Liknande mjukvara

ltrace
ltrace

20 Feb 15

rpcpdb
rpcpdb

20 Feb 15

glibc-audit
glibc-audit

3 Jun 15

Accerciser
Accerciser

31 Oct 16

Annan programvara för utvecklare Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

paexec
paexec

20 Feb 15

runawk
runawk

19 Feb 15

Kommentarer till LMDBG

Kommentarer hittades inte
Kommentar
Slå på bilder!