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

debug
debug

11 May 15

WingDBG
WingDBG

20 Feb 15

dprintf
dprintf

20 Feb 15

Andere Software von Entwickler Aleksey Cheusov

runawk
runawk

19 Feb 15

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

Kommentare zu LMDBG

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