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: 16

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

Splint
Splint

3 Jun 15

YARI
YARI

12 May 15

PureTest
PureTest

11 May 15

xtrace
xtrace

11 May 15

Muu ohjelmistojen kehittäjä Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

runawk
runawk

19 Feb 15

paexec
paexec

20 Feb 15

Kommentit LMDBG

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