LMDBG

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

Rating: nan/5 (Total Votes: 0)

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

LDasm
LDasm

3 Jun 15

PuDB
PuDB

20 Feb 15

YARI
YARI

12 May 15

otrace
otrace

20 Feb 15

Annan programvara för utvecklare Aleksey Cheusov

DictEm
DictEm

20 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

runawk
runawk

19 Feb 15

Kommentarer till LMDBG

Kommentarer hittades inte
Kommentar
Slå på bilder!