LMDBG

Logiciel capture d'écran:
LMDBG
Détails logiciels:
Version: 1.2.0
Date de transfert: 20 Feb 15
Développeur: Aleksey Cheusov
Licence: Gratuit
Popularité: 16

Rating: nan/5 (Total Votes: 0)

LMDBG est une application qui permet de mémoire leaksand libère doubles & nbsp détection;. Cependant, contrairement à d'autres, LMDBG génère * COMPLET * stacktracesand sépare la connexion de l'analyse thusallowing d'analyser une application sur base de chaque module.
- lmdbg terme est un utilitaire de lmdbg principale. Il exécute une application et crée un fichier journal (ou FIFO) où tous appelé malloc / calloc / realloc / gratuit / memalign / invocations posix_memalign sont inscrits auprès de leur entrée (octets comptent, pointeur), sortie (pointeur) et (!!! uniques fonction !!!) PLEIN STACKTRACE (pointeurs).
Exemple:
& Nbsp; & nbsp; & nbsp; & nbsp; Essais $ 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 -o -O0 -g _test2 tests / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg terme -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; $
Remarque: stacktrace complet vous permet d'analyser votre demande, ce est à dire vous pouvez détecter ce blocs / composants nécessitent plus de mémoire que d'autres et pourquoi. lmdbg-sym est un outil très important pour cela, voir ci-dessous.
- lmdbg-fuites analyse un fichier journal généré par lmdbg terme et la sortie toutes les fuites de mémoire trouvés
Exemple:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-fuites _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 convertit adresses source.c: 999 si ce est possible
Exemple (gdb (1) est en action):
& 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 principale
& 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 principale
& 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; principal
& 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; principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Exemple (addr2line (1) fonctionne ici):
& 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 ou saute système fuites de mémoire ont trouvé dans la libc, libdl, C ++ stl etc. Voir tests / lmdbg * .conf. Les fichiers de configuration par défaut sont: ~ / .lmdbg.conf et /etc/lmdbg.conf
- lmdbg = lmdbg-Run + lmdbg-fuites + lmdbg-sym + lmdbg-sysleaks
Ce est lmdbg est un outil de plus haut niveau tout-en-un.
Exemple:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Les fuites de mémoire ont été détectés et enregistrés dans un fichier '_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; principal
& 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 principale
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

Quoi de neuf dans cette version:

  • lmdbg-sym plus segfaults raison de problèmes avec stacktrace (3).
  • Une méthode de conversion d'adresse beaucoup plus simple et correcte a été ajouté.
  • Il y avait des accélérations significatives dues à des optimisations pour gdb.
  • Dans lmdbg terme, GLIBC malloc crochets ne sont plus utilisés.
  • propre code de lmdbg est pas inclus dans stacktraces.
  • Une nouvelle option -N a été ajouté, et l'option -v reçu un correctif mineur.
  • lmdbg-stat reçu des correctifs pour un déréférencement de NULL qui semblait si un (3) ou realloc (3) stacktrace libre était sans malloc appropriée / realloc (3) stacktrace.
  • Il y avait d'autres corrections mineures et améliorations, des améliorations dans les tests de régression, et des améliorations dans stacktrace (3).

Ce qui est nouveau dans la version 1.1.0:.

  • Un correctif dans les tests de régression
  • lmdbg terme: zéro adresses sont retirés de stacktraces générés par la trace de la glibc (3)
  • .
  • Cette version corrige affirme dans lmdbg-stat (1).
  • Double & quot; 0x & quot; questions dans le & quot; la section info & quot; ont été fixés (vu sur NetBSD).
  • trace (3) de libexecinfo (si disponible) est utilisé à la place de l'implémentation intégrée.
  • lmdbg-sym:. Quelques bogues ont été corrigés dans la conversion des adresses aux symboles
  • lmdbg-STAT: incomplètement lire lignes sont maintenant ignorés, donc il n'y a plus d'affirmer (3) s quand une application en cours de débogage est tué
  • .
  • Une exécution alternative écrit en awk a été supprimé.

Quoi de neuf dans la version 0.17.0:

  • Cette version ajoute de nombreuses améliorations et corrections dans pages de manuel, de nouvelles capacités dans lmdbg, lmdbg-terme, et lmdbg-sym, et des corrections mineures lmdbg-stat.
  • lmdbg est maintenant un outil méta qui est capable de faire beaucoup plus de choses, ne trouvez pas simplement des fuites de mémoire.

Quoi de neuf dans la version 0.15.1:

  • Enregistrement des calloc (3) invocations est désactivé sur systèmes basés sur glibc (Linux, GNU / kFreeBSD, et peut-être d'autres) parce lmdbg terme échoue sur eux.
  • nettoyages mineurs, des corrections et des améliorations. mk-configure & gt;. = 0,20 est nécessaire pour la construction

Ce qui est nouveau dans la version 0.14.0:

  • Nouveaux outils: lmdbg-stat, lmdbg-grep et lmdbg tri pour recueillir et analyser des informations statistiques sur les allocations de mémoire.
  • lmdbg terme: de nouvelles options pour lmdbg terme:. -M -S Et pour générer stacktraces raccourcis
  • lmdbg-sym:. Nouvelle option -p pour obtenir le nom de programme à partir de la sortie de lmdbg terme
  • fix: 'test de mkcmake' supprime ses fichiers temporaires
  • .

Logiciel similaire

glibc-audit
glibc-audit

3 Jun 15

BuGLe
BuGLe

17 Feb 15

Splint
Splint

3 Jun 15

D'autres logiciels de développeur Aleksey Cheusov

runawk
runawk

19 Feb 15

DictEm
DictEm

20 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Commentaires à LMDBG

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!