LMDBG is 'n program wat jou toelaat opsporing geheue leaksand dubbel bevry. & Nbsp; egter in teenstelling met ander, LMDBG genereer * Vol * stacktracesand skei meld van analise thusallowing n aansoek per module basis te analiseer.
- lmdbg-run is 'n belangrike lmdbg nut. Dit loop 'n aansoek en skep 'n log-lêer (of EIEU) waar al genoem malloc / calloc / realloc / vrye / memalign / posix_memalign aanroepingen geregistreer met hul insette (grepe tel, wyser), uitset (wyser) en (!!! unieke funksie !!!) volledige STACKTRACE (pointers).
Voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat toetse / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; include
& Nbsp; & nbsp; & nbsp; & nbsp; int main ()
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; leemte * p1 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; leemte * 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; terugkeer 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 G o _test2 toetse / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-run-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 (nul, 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; $
Nota: Full stacktrace kan jy jou aansoek te analiseer, dws jy kan opspoor wat blokke / komponente vereis meer geheue as ander en hoekom. lmdbg-sim is 'n baie belangrike instrument vir hierdie, sien hieronder.
- lmdbg-lekkasies ontleed 'n log-lêer gegenereer deur lmdbg-run en uitset al gevind geheue lekkasies
Voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-lekkasies _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-sim vat adresse source.c: 999 as dit moontlik is
Voorbeeld (gdb (1) is in werking):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sim ./_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; toetse / test2.c: 8 hoof
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (nul, 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; toetse / test2.c: 9 belangrikste
& 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; toetse / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoof
& 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; toetse / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoof
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Voorbeeld (addr2line (1) werk hier):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sim-'n ./_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; toetse / test2.c: 8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (nul, 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; toetse / 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; toetse / 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; toetse / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps of spring stelsel geheue lekkasies gevind in LIBC, libdl, C ++ stl ens Sien toetse / lmdbg * .conf lêers. Die standaard konfigurasielêers is: ~ / .lmdbg.conf en /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-lekkasies + lmdbg-sim + lmdbg-sysleaks
Dit is lmdbg is alles-in-een hoër vlak instrument.
Voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg v o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Geheue lekkasies opgespoor en gered te dien '_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; toetse / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoof
& 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; toetse / test2.c: 8 hoof
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Wat is nuut in hierdie release:
- lmdbg-sim nie meer segfaults weens probleme met stacktrace (3).
- 'n baie makliker en korrekte adres omskakeling metode is bygevoeg.
- Daar was beduidende speedups weens optimalisaties vir gdb.
- In lmdbg-run, glibc malloc hakies is nie meer gebruik nie.
- lmdbg se eie kode is nie ingesluit in stacktraces.
- 'n nuwe -N opsie is bygevoeg, en die v opsie ontvang 'n minderjarige fix.
- lmdbg-stat ontvang fixes vir 'n NULL dereference wat verskyn as 'n gratis (3) of realloc (3) stacktrace was sonder 'n toepaslike malloc / realloc (3) stacktrace.
- Daar was ander kleiner verbeterings en verbeterings in regressie toetse, en verbeterings in stacktrace (3).
Wat is nuut in die weergawe 1.1.0:.
- 'n fix in regressie toetse
- lmdbg-run: nul adresse is verwyder van stacktraces gegenereer deur glibc se terugsoektog (3) .
- Hierdie fixes beweer in lmdbg-stat (1).
- Double & quot; 0x & quot; kwessies in die & quot; inligting & quot; is vasgestel (gesien op NetBSD).
- terugsoektog (3) van libexecinfo (indien beskikbaar) word gebruik in plaas van die gebou-in die uitvoering.
- lmdbg-sim. 'N paar foute is vasgestel in die sukses van adresse aan simbole
- lmdbg-stat: onvolledig gelees lyne is nou geïgnoreer, so daar is nie meer geld (3) is wanneer 'n aansoek ontfout gedood .
- 'n alternatiewe implementering geskryf in awk verwyder.
Wat is nuut in die weergawe 0.17.0:
- Hierdie weergawe voeg 'n baie verbeterings en fixes in handleiding bladsye, nuwe vermoëns in lmdbg, lmdbg-run, en lmdbg-sim, en klein fixes te lmdbg-stat.
- lmdbg is nou 'n meta instrument wat in staat is om baie meer dinge om te doen, nie net vind geheue lekkasies.
Wat is nuut in die weergawe 0.15.1:
- Logging van calloc (3) aanroepingen is afgeskakel op glibc-gebaseerde stelsels (Linux, GNU / kFreeBSD, en miskien ander) omdat lmdbg-run versuim op hulle.
- Klein skoon-ups, fixes en verbeterings. MK instel & gt;. = 0,20 is wat nodig is vir die bou van
Wat is nuut in die weergawe 0.14.0:
- New gereedskap: lmdbg-stat, lmdbg-grep en lmdbg-soort vir die insameling en ontleding van statistiese inligting oor die geheue toekennings.
- lmdbg-run: nuwe opsies vir lmdbg-run. -S En -M vir die opwekking van verkorte stacktraces
- lmdbg-sim. Nuwe opsie p vir die verkryging program naam lmdbg lopies se uitset
- fix: "mkcmake toets" verwyder sy tydelike lêers .
Kommentaar nie gevind