LMDBG

Software screenshot:
LMDBG
Software informatie:
Versie: 1.2.0
Upload datum: 20 Feb 15
Ontwikkelaar: Aleksey Cheusov
Licentie: Gratis
Populariteit: 16

Rating: nan/5 (Total Votes: 0)

LMDBG is een applicatie die het mogelijk maakt het opsporen van geheugen leaksand dubbele bevrijdt & nbsp;. Echter, in tegenstelling tot anderen, LMDBG genereert * FULL * stacktracesand scheidt het inloggen van analyse thusallowing naar een toepassing op per-module basis te analyseren.
- lmdbg-run is een van de belangrijkste lmdbg nut. Het loopt een toepassing en maakt een logbestand (of fifo), waar alle genaamd malloc / calloc / realloc / vrij / memalign / posix_memalign aanroepingen zijn geregistreerd bij hun inbreng (bytes tellen, pointer), uitgang (pointer) en (!!! uniques functie !!!) FULL stacktrace (pointers).
Voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat testen / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; #include
& Nbsp; & nbsp; & nbsp; & nbsp; int main ()
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; leegte * p1 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; leegte * 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; 0 terugkeren;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 -g -o _test2 testen / 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 (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; $
NB: Volledige stacktrace kunt u uw applicatie te analyseren, dat wil zeggen je kan ontdekken wat blokken / componenten meer geheugen nodig hebben dan anderen en waarom. lmdbg-sym is een zeer belangrijk instrument voor deze, zie hieronder.
- lmdbg-lekken analyseert een logbestand gegenereerd door lmdbg-run en output alle gevonden memory leaks
Voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-lekken _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 zet adressen aan source.c: 999 als het mogelijk is
Voorbeeld (gdb (1) is in actie):
& 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; testen / test2.c: 8 belangrijkste
& 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; testen / test2.c: 9 belangrijkste
& 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; testen / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoofd-
& 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; testen / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoofd-
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Voorbeeld (addr2line (1) werkt hier):
& 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; testen / 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; testen / 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; testen / 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; testen / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps of slaat het systeem geheugen lekken gevonden in libc, libdl, C ++ stl etc. Zie testen / lmdbg * .conf bestanden. De standaard config files zijn: ~ / .lmdbg.conf en /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-lekken + lmdbg-sym + lmdbg-sysleaks
Dat is lmdbg is alles-in-een hoger niveau tool.
Voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Geheugenlekken werden gedetecteerd en worden opgeslagen in het bestand '_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; testen / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hoofd-
& 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; testen / test2.c: 8 belangrijkste
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Wat is nieuw in deze release:

  • lmdbg-sym niet langer segfaults vanwege problemen met stacktrace (3).
  • Een veel eenvoudiger en correcte adres conversie methode werd toegevoegd.
  • Er waren aanzienlijke snelheidswinst te wijten aan optimalisaties voor gdb.
  • In lmdbg-run, GLIBC malloc haken niet meer worden gebruikt.
  • eigen code lmdbg's is niet opgenomen in stacktrace.
  • Een nieuwe -N optie werd toegevoegd, en de -v optie kreeg een kleine fix.
  • lmdbg-stat ontvangen fixes voor een NULL dereferentie dat verscheen als een gratis (3) of realloc (3) stacktrace was zonder een geschikte malloc / realloc (3) stacktrace.
  • Er waren andere kleine fixes en verbeteringen, verbeteringen in de regressietesten, en verbeteringen in stacktrace (3).

Wat is nieuw in versie 1.1.0:.

  • Een fix in regressietesten
  • lmdbg-run: zero-adressen worden verwijderd uit stacktrace gegenereerd door glibc's backtrace (3)
  • .
  • Dit lost beweert in lmdbg-stat (1).
  • Dubbel & quot; 0x & quot; kwesties in de & quot; info sectie & quot; werden vastgesteld (gezien op NetBSD).
  • backtrace (3) uit libexecinfo (indien beschikbaar) wordt gebruikt in plaats van de ingebouwde implementatie.
  • lmdbg-sym:. Een paar foutjes in de omzetting van de adressen van de symbolen
  • lmdbg-stat: onvolledig gelezen lijnen worden nu genegeerd, zodat er niet meer te doen gelden (3) s wanneer een toepassing waarin fouten worden opgespoord wordt gedood
  • .
  • Een alternatieve implementatie geschreven in awk werd verwijderd.

Wat is nieuw in versie 0.17.0:

  • Deze versie voegt veel verbeteringen en fixes in manual pagina's, nieuwe mogelijkheden in lmdbg, lmdbg-run, en lmdbg-sym, en kleine fixes te lmdbg-stat.
  • lmdbg is nu een meta-tool die in staat is om veel meer dingen te doen, niet alleen maar vinden het geheugen lekken.

Wat is nieuw in versie 0.15.1:

  • Logging van calloc (3) invocaties is uitgeschakeld op glibc-gebaseerde systemen (Linux, GNU / kFreeBSD, en misschien anderen) omdat lmdbg-run niet op hen.
  • Minor clean-ups, fixes en verbeteringen. mk-configure & gt;. = 0,20 is nodig voor de bouw

Wat is nieuw in versie 0.14.0:

  • Nieuwe tools: lmdbg-stat, lmdbg-grep en lmdbg-soort voor het verzamelen en analyseren van statistische informatie over geheugentoewijzingen.
  • lmdbg-run: nieuwe opties voor lmdbg-run:. -S En -M voor het genereren van verkorte stacktrace
  • lmdbg-sym:. Nieuwe optie -p voor het verkrijgen van programmanaam uit uitgang lmdbg-run's
  • fix: 'mkcmake test "verwijdert de tijdelijke bestanden
  • .

Vergelijkbare software

Profiler4j
Profiler4j

3 Jun 15

BuGLe
BuGLe

17 Feb 15

DBG
DBG

3 Jun 15

dprintf
dprintf

20 Feb 15

Andere software van ontwikkelaar Aleksey Cheusov

runawk
runawk

19 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

Reacties op LMDBG

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!