LMDBG

Software kuvakaappaus:
LMDBG
Ohjelmiston tiedot:
Versio: 1.2.0
Lähetyksen päivämäärä: 20 Feb 15
Kehittäjä: Aleksey Cheusov
Lupa: Vapaa
Suosio: 68

Rating: 5.0/5 (Total Votes: 1)

LMDBG on sovellus, jonka avulla havaitsemaan muisti leaksand kaksinkertainen frees. & Nbsp; Toisin kuin muut, LMDBG luo * TÄYNNÄ * stacktracesand erottelee kirjautumisen analyysista thusallowing analysoida sovelluksen per-moduulin pohjalta.
- lmdbg-run on tärkein lmdbg apuohjelma. Se toimii sovellus ja luo lokitiedoston (tai FIFO), jossa kaikki kutsutaan malloc / calloc / realloc / vapaa / memalign / posix_memalign invocations rekisteröidään niiden tulo (tavut laskea, osoitin), lähtö (osoitin) ja (!!! yksilöityähakua ominaisuus !!!) FULL STACKTRACE (osoittimet).
Esimerkki:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat testit / 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 testit / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-run -o _Loki ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _Loki
& 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; $
HUOMAA: Täysi stacktrace voit analysoida hakemuksesi, eli voit havaita, mitä lohkoja / komponentit vaativat enemmän muistia kuin toiset ja miksi. lmdbg-sym on erittäin tärkeä väline tähän, katso alla.
- lmdbg-vuodot analysoi lokitiedosto syntyy lmdbg-run ja tuotos kaikki löydetyt muistivuotokuvioista
Esimerkki:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-vuodot _Loki & 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 muuntaa osoitteet source.c: 999, jos se on mahdollista
Esimerkki (gdb (1) on toiminnassa):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym ./_test2 _Loki
& 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; testejä / 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; testejä / 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; testejä / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tärkein
& 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; testejä / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tärkein
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Esimerkki (addr2line (1) toimii tässä):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym -a ./_test2 _Loki
& 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; testejä / 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; testejä / 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; testejä / 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; testejä / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps tai ohittaa järjestelmän muistia vuotoja löytyy libc, libdl, C ++ STL jne Katso testejä / lmdbg * conf tiedostot. Oletuksena config tiedostot ovat: ~ / .lmdbg.conf ja /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-vuodot + lmdbg-sym + lmdbg-sysleaks
Eli lmdbg on all-in-one korkeamman tason työkalu.
Esimerkki:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _Loki ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Muisti vuotoja havaittiin ja tallennetaan tiedostoon "_Loki"
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _Loki
& 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; testejä / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tärkein
& 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; testejä / test2.c: 8 main
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Mitä uutta tässä julkaisussa:

  • lmdbg-sym enää segfaults ongelmien vuoksi stacktrace (3).
  • paljon yksinkertaisempi ja oikea osoite muunnosmenetelmä lisättiin.
  • Oli merkittävää speedups johtuu optimointeja gdb.
  • lmdbg aikavälillä glibc malloc koukut ei enää käytetä.
  • lmdbg oma koodi ei sisälly stacktraces.
  • Uusi -N vaihtoehto lisättiin, ja -v vaihtoehto sai pieniä fix.
  • lmdbg-stat sai korjauksia NULL dereference joka ilmestyi jos ilmainen (3) tai realloc (3) stacktrace eteen sopiva malloc / realloc (3) stacktrace.
  • Oli muita pieniä korjauksia ja parannuksia, parannuksia regressiotestien ja parannuksia stacktrace (3).

Mitä uutta versiossa 1.1.0:

  • fix regressiotestit.
  • lmdbg-run: nolla-osoitteet poistetaan stacktraces tuottamat glibc n backtrace (3).
  • Tämä korjaa väittää in lmdbg-stat (1).
  • Double & quot; 0x & quot; kysymykset & quot; info kohta & quot; kiinnitettiin (nähty NetBSD).
  • backtrace (3) libexecinfo (jos käytettävissä) sijasta käytetään sisäänrakennettu toteuttamiseen.
  • lmdbg-sym: muutamia virheitä fiksattiin muuntaminen osoitteita symbolia.
  • lmdbg-stat: epätäydellisesti lukea rivit nyt huomiotta, joten ei ole enää vedota (3) s, kun hakemuksen debugged tapetaan.
  • vaihtoehto täytäntöönpanoa kirjoitettu awk poistettiin.

Mitä uutta versiossa 0.17.0:

  • Tämä versio tuo paljon parannuksia ja korjauksia ohjesivuja, uusia valmiuksia lmdbg, lmdbg-run, ja lmdbg-sym, ja pieniä korjauksia lmdbg-stat.
  • lmdbg on nyt meta työkalu, joka pystyy tekemään paljon enemmän asioita, eikä vain löytää muistivuodot.

Mitä uutta versiossa 0.15.1:

  • Hankinnat calloc (3) kutsumisessa on pois käytöstä glibc-pohjaiset järjestelmät (Linux, GNU / kfreebsd, ja ehkä muut) koska lmdbg-sarja ei niitä.
  • Minor siivouksen, korjauksia, ja parannuksia. mk-configure & gt; = 0,20 vaaditaan rakennus.

Mitä uutta versiossa 0.14.0:

  • Uudet työkalut: lmdbg-stat, lmdbg-grep ja lmdbg lajitella ja analysoimalla tilastotietoa muistiallokointi.
  • lmdbg-run: uusia vaihtoehtoja lmdbg-run: -S ja -M tuottamiseksi lyhentää stacktraces.
  • lmdbg-sym: uusi vaihtoehto -p saamiseksi ohjelman nimen lmdbg aikavälillä tuotoksen.
  • fix: 'mkcmake testi "poistaa väliaikaiset tiedostot.

Vastaavia ohjelmistoja

PyXMPP
PyXMPP

11 May 15

PuDB
PuDB

20 Feb 15

LDasm
LDasm

3 Jun 15

Muu ohjelmistojen kehittäjä Aleksey Cheusov

runawk
runawk

19 Feb 15

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

Kommentit LMDBG

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!