LMDBG

Screenshot der Software:
LMDBG
Softwarebeschreibung:
Version: 1.2.0
Upload-Datum: 20 Feb 15
Entwickler: Aleksey Cheusov
Lizenz: Frei
Popularität: 16

Rating: nan/5 (Total Votes: 0)

LMDBG ist eine Anwendung, erlaubt die Erkennung Speicher leaksand Doppel befreit. & Nbsp; Im Gegensatz zu anderen, erzeugt LMDBG * FULL * stacktracesand trennt die Anmeldung von der Analyse thusallowing, eine Anwendung auf Modulbasis analysieren.
- lmdbg-run ist ein Haupt lmdbg Dienstprogramm. Es läuft eine Anwendung und erstellt eine Protokolldatei (oder FIFO), in der alle genannten malloc / calloc / realloc / Frei / memalign / posix_memalign Anrufungen sind mit ihren Eingangs registriert (Bytes zählen, Zeiger), Ausgang (Zeiger) und (!!! uniques Funktion !!!) FULL STACKTRACE (Zeiger).
Beispiel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat Tests / 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 Tests / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg geführte -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; $
Hinweis: Vollstacktrace können Sie Ihre Anwendung zu analysieren, dh Sie können erkennen, was Blöcke / Komponenten erfordern mehr Speicher als andere und warum. lmdbg-sym ist ein sehr wichtiges Werkzeug dafür finden Sie unten.
- lmdbg-Lecks analysiert eine von lmdbg-run und Ausgangs alle gefundenen Speicherlecks generierte Protokolldatei
Beispiel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-Lecks _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 wandelt Adressen source.c: 999, wenn es möglich ist
Beispiel (gdb (1) ist im Einsatz):
& 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; Tests / test2.c: 8 Haupt
& 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; Tests / test2.c: 9 Haupt
& 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; Tests / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; der main
& 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; Tests / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; der main
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Beispiel (addr2line (1) arbeitet 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; Tests / 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; Tests / 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; Tests / 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; Tests / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps oder überspringt Systemspeicherlecks in libc, libdl, C ++ stl usw. gefunden Siehe Tests / lmdbg * .conf-Dateien. Die Standardkonfigurationsdateien sind: ~ / .lmdbg.conf und /etc/lmdbg.conf
- lmdbg = lmdbg-run + lmdbg-Lecks + lmdbg-sym + lmdbg-sysleaks
Das ist lmdbg ist all-in-one-Tool höheren Niveau.
Beispiel:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Speicherlecks wurden erkannt und in einer Datei gespeichert "_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; Tests / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; der main
& 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; Tests / test2.c: 8 Haupt
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Was ist neu in dieser Pressemitteilung:

  • lmdbg-sym nicht mehr segfaults aufgrund von Problemen mit Stacktrace (3).
  • Ein einfacher und richtige Adresse Konvertierungsmethode wurde hinzugefügt.
  • Es gab signifikante Beschleunigungen aufgrund von Optimierungen für gdb.
  • In lmdbg-run, sind GLIBC malloc Haken nicht mehr verwendet.
  • eigenen Code lmdbg ist nicht im Stacktraces enthalten.
  • Eine neue Option -N zugegeben und die Option -v erhalten eine untergeordnete fix.
  • lmdbg-stat erhalten Updates für eine NULL dereferenzieren, die erschien, wenn eine freie (3) oder realloc (3) Stacktrace war ohne entsprechende malloc / realloc (3) Stacktrace.
  • Es gab noch andere kleinere Verbesserungen und Bugfixes, Verbesserungen in der Regressionstests und Verbesserungen in der Stacktrace (3).

Was ist neu in Version 1.1.0:.

  • Ein Update in Regressionstests
  • lmdbg Lauf:. Null-Adressen werden von Stacktraces von Glibc Backtrace (3)
  • generiert entfernt
  • Das behebt behauptet in lmdbg-stat (1).
  • Doppel & quot; 0x & quot; Probleme in der & quot; Info-Bereich & quot; festgelegt wurden (gesehen auf NetBSD).
  • Rückverfolgung (3) von libexecinfo (falls vorhanden) wird statt der integrierten Umsetzung.
  • verwendet
  • lmdbg-sym:. Ein paar Fehler wurden bei der Umwandlung von Adressen, die Symbole fest
  • lmdbg-stat: unvollständig gelesen Linien werden nun ignoriert, so dass es nicht mehr geltend machen (3) s, wenn eine Anwendung gedebuggt wird getötet
  • .
  • Eine alternative Implementierung in awk geschrieben wurde entfernt.

Was ist neu in der Version 0.17.0:

  • Diese Version fügt eine Menge von Verbesserungen und Korrekturen in Handbuchseiten, neue Funktionen in lmdbg, lmdbg geführte und lmdbg-sym und kleinere Korrekturen zu lmdbg-stat.
  • lmdbg ist nun eine Meta-Werkzeug, das in der Lage, viel mehr Dinge zu tun, nicht nur finden, Speicherlecks ist.

Was ist neu in der Version 0.15.1:

  • Protokollierung von calloc (3) Anrufungen auf deaktiviert glibc-basierten Systemen (Linux, GNU / kFreeBSD und evtl. weitere) wegen lmdbg Lauf nicht auf sie.
  • Kleinere Sanierungen, Fixes und Verbesserungen. mk-configure & gt;. = 0,20 für Gebäude erforderlich

Was ist neu in der Version 0.14.0:

  • Neue Werkzeuge: lmdbg-stat, lmdbg-grep und lmdbg-Art für die Sammlung und Analyse statistischer Informationen über Speicherzuordnungen.
  • lmdbg Lauf: neue Optionen für lmdbg Lauf:. -S Und -M zur Erzeugung verkürzt Stacktraces
  • lmdbg-sym:. Neue Option -p für den Erhalt von Programmnamen aus Ausgang lmdbg-run
  • fix: "mkcmake test 'entfernt die temporären Dateien
  • .

Ähnliche Software

rpcpdb
rpcpdb

20 Feb 15

PureTest
PureTest

11 May 15

Valgrind
Valgrind

17 Feb 15

debug
debug

11 May 15

Andere Software von Entwickler Aleksey Cheusov

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

runawk
runawk

19 Feb 15

Kommentare zu LMDBG

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!