LMDBG

Software screenshot:
LMDBG
Dettagli del software:
Versione: 1.2.0
Data di caricamento: 20 Feb 15
Sviluppatore: Aleksey Cheusov
Licenza: Libero
Popolarità: 16

Rating: nan/5 (Total Votes: 0)

LMDBG è un'applicazione che permette di rilevare la memoria leaksand doppie frees & nbsp;. Tuttavia, a differenza di altri, LMDBG genera * PIENO * stacktracesand separa registrazione dall'analisi thusallowing per analizzare un'applicazione per ogni singolo modulo.
- lmdbg-run è un programma di utilità lmdbg principale. Si esegue un'applicazione e crea un file di registro (o FIFO) dove tutti chiamati malloc / calloc / realloc / liberi / memalign / invocazioni posix_memalign sono registrati con il loro contributo (contano bytes, puntatore), uscita (pointer) e (!!! uniques caratteristica !!!) COMPLETA StackTrace (puntatori).
Esempio:
& Nbsp; & nbsp; & nbsp; & nbsp; Test $ cat / 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; return 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 -g -o _test2 test / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $-Run lmdbg -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; $
Nota: stacktrace completa che permette di analizzare la vostra applicazione, per esempio, si può rilevare che cosa blocchi / componenti richiedono più memoria rispetto ad altri e perché. lmdbg-SYM è uno strumento molto importante per questo, vedi sotto.
- lmdbg-leaks analisi di un file di log generato da-run lmdbg e uscita tutte le perdite di memoria disponibili
Esempio:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-perdite _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 converte indirizzi source.c: 999 se è possibile
Esempio (gdb (1) è in azione):
& 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; Test / test2.c: 8 main
& 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; Test / test2.c: 9 main
& 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; Test / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; principale
& 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; Test / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; principale
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Esempio (addr2line (1) funziona qui):
& 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; Test / 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; Test / 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; Test / 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; Test / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps o salta perdite di memoria di sistema trovati in libc, libdl, C ++ stl etc. test / lmdbg * .conf. I file di configurazione di default sono: ~ / .lmdbg.conf e /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-leaks + lmdbg-sim + lmdbg-sysleaks
Questo è lmdbg è tutto-in-uno strumento di livello più elevato.
Esempio:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Le perdite di memoria sono stati rilevati e salvati su file '_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; Test / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; principale
& 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; Test / test2.c: 8 main
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Cosa c'è di nuovo in questa versione:

  • lmdbg-SYM non segfaults a causa di problemi con stacktrace (3).
  • È stato aggiunto un metodo di conversione indirizzo molto più semplice e corretto.
  • Ci sono stati significativi incrementi nella velocità a causa di ottimizzazioni per gdb.
  • In-run lmdbg, glibc ganci malloc non vengono più utilizzati.
  • proprio codice di lmdbg non è incluso nel stacktraces.
  • è stata aggiunta una nuova opzione -N, e l'opzione -v ricevuto una correzione minore.
  • lmdbg-stat ricevuto le correzioni per un dereference NULL che è apparso, se un libero (3) o realloc (3) stacktrace era senza un adeguato malloc / realloc (3) stacktrace.
  • Ci sono state altre correzioni minori e miglioramenti, miglioramenti nei test di regressione, e miglioramenti in stacktrace (3).

Cosa c'è di nuovo nella versione 1.1.0:.

  • una correzione in test di regressione
  • lmdbg-run: indirizzi a zero vengono rimossi dalla stacktraces generate da backtrace di glibc (3)
  • .
  • Questo risolve afferma in lmdbg-stat (1).
  • Doppia & quot; 0x & quot; problemi in & quot; Informazioni sezione & quot; sono stati fissati (visto su NetBSD).
  • backtrace (3) dal libexecinfo (se disponibile) viene usato al posto del built-in di attuazione.
  • lmdbg-SYM:. Alcuni bug sono stati fissati nella conversione di indirizzi di simboli
  • lmdbg-stat: incompleto leggere le linee sono ora ignorate, quindi non ci sono più affermare (3) s quando un'applicazione in fase di debug viene ucciso
  • .
  • Un'implementazione alternativa scritta in awk è stato rimosso.

Cosa c'è di nuovo in versione 0.17.0:

  • Questa versione aggiunge un sacco di miglioramenti e correzioni in pagine di manuale, nuove funzionalità di lmdbg, a conduzione lmdbg, e lmdbg-sim, e correzioni minori lmdbg-stat.
  • lmdbg è ormai uno strumento di meta, che è in grado di fare molte più cose, non solo trovare le perdite di memoria.

Cosa c'è di nuovo in versione 0.15.1:

  • Registrazione di calloc (3) invocazioni è attivato per il sistemi basati su glibc (Linux, GNU / kFreeBSD, e forse altri) in quanto a gestione lmdbg non su di loro.
  • minori clean-up, correzioni e miglioramenti. mk-configure & gt;. è necessario = 0.20 per edilizia

Cosa c'è di nuovo in versione 0.14.0:

  • Nuovi strumenti: lmdbg-stat, lmdbg-grep e lmdbg-tipo per la raccolta e l'analisi di dati statistici sulle allocazioni di memoria.
  • lmdbg-run: nuove opzioni per-run lmdbg:. -S E -M per generare stacktraces accorciati
  • lmdbg-SYM:. Nuova opzione -p per ottenere il nome del programma da uscita di pista di lmdbg
  • fix: 'test mkcmake' rimuove i file temporanei
  • .

Programmi simili

Meliae
Meliae

11 May 15

BuGLe
BuGLe

17 Feb 15

Linaro GDB
Linaro GDB

20 Feb 15

Cleaner
Cleaner

3 Jun 15

Altri software di sviluppo Aleksey Cheusov

runawk
runawk

19 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Commenti a LMDBG

I commenti non trovato
Aggiungi commento
Accendere le immagini!