LMDBG

Software captura de pantalla:
LMDBG
Detalles de software:
Versión: 1.2.0
Fecha de carga: 20 Feb 15
Promotor: Aleksey Cheusov
Licencia: Libre
Popularidad: 16

Rating: nan/5 (Total Votes: 0)

LMDBG es una aplicación que permite detectar la memoria leaksand dobles libera. & Nbsp; Sin embargo, a diferencia de otros, LMDBG genera * FULL * stacktracesand separa el registro de análisis thusallowing analizar una aplicación en función de cada módulo.
- lmdbg plazo es una utilidad principal lmdbg. Se ejecuta una aplicación y crea un archivo de registro (o fifo) donde toda llamada malloc / calloc / realloc / / memalign / invocaciones posix_memalign están registrados con su entrada (cuentan bytes, puntero) libre, salida (puntero) y (!!! únicas característica !!!) COMPLETO StackTrace (punteros).
Ejemplo:
& Nbsp; & nbsp; & nbsp; & nbsp; Pruebas $ 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 -O0 -g -o _test2 pruebas / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg plazo -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ _log Gato
& 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; $
Nota: stacktrace completa permite analizar su aplicación, es decir, puede detectar lo que bloquea / componentes requieren más memoria que otras y por qué. lmdbg-sym es una herramienta muy importante para esto, ver más abajo.
- lmdbg-leaks analiza un archivo de registro generado por lmdbg de gestión y de salida todas las fugas de memoria encontradas
Ejemplo:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-leaks _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 convierte direcciones a source.c: 999 si es posible
Ejemplo (gdb (1) está en acción):
& 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; pruebas / test2.c: 8 principal
& 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; pruebas / test2.c: 9 principal
& 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; pruebas / 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; pruebas / 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; $
Ejemplo (addr2line (1) trabaja aquí):
& 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; pruebas / 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; pruebas / 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; pruebas / 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; pruebas / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - GREPS o saltos pérdidas de memoria del sistema encontraron en libc, libdl, C ++ stl etc. Ver pruebas / lmdbg * .conf. Los ficheros de configuración por defecto son: ~ / .lmdbg.conf y /etc/lmdbg.conf
- lmdbg = lmdbg-Run + lmdbg-fugas + lmdbg-sym + lmdbg-sysleaks
Es decir lmdbg es la herramienta nivel todo-en-uno más alto.
Ejemplo:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Las pérdidas de memoria se detectan y se guardan en el archivo '_log'
& Nbsp; & nbsp; & nbsp; & nbsp; $ _log Gato
& 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; pruebas / 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; pruebas / test2.c: 8 principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

¿Qué hay de nuevo en esta versión:

  • lmdbg-sym ya no segfaults debido a problemas con stacktrace (3).
  • Se ha añadido un método de conversión de dirección mucho más sencilla y correcta.
  • No hubo aceleraciones significativas debido a optimizaciones para gdb.
  • En lmdbg plazo, ganchos malloc GLIBC ya no se utilizan.
  • propio código de lmdbg no está incluido en stacktraces.
  • Se agregó una nueva opción -N, y la opción -v recibió un arreglo menor de edad.
  • lmdbg-stat reciben correcciones para eliminar la referencia a NULL que apareció si un (3) o realloc (3) stacktrace libre fue sin un / realloc (3) stacktrace malloc apropiado.
  • Había otras correcciones menores y mejoras, mejoras en las pruebas de regresión, y mejoras en stacktrace (3).

¿Qué hay de nuevo en la versión 1.1.0:.

  • Una solución en pruebas de regresión
  • lmdbg plazo: cero direcciones se eliminan de stacktraces generados por traza de glibc (3)
  • .
  • Esto fija afirma en lmdbg-stat (1).
  • Doble & quot; 0x & quot; problemas en el & quot; info sección & quot; se fijaron (visto en NetBSD).
  • traza inversa (3) de libexecinfo (si está disponible) se utiliza en lugar de la incorporada en la aplicación.
  • lmdbg-sym:. Algunos errores fueron fijadas en la conversión de direcciones de símbolos
  • lmdbg-stat: leer incompletamente líneas están ahora ignorados, por lo que no son más afirmar (3) s cuando se asesina a una aplicación que se está depurando
  • .
  • Una implementación alternativa escrito en awk se retiró.

¿Cuál es nuevo en la versión 0.17.0:

  • Esta versión añade un montón de mejoras y correcciones en páginas de manual, nuevas capacidades en lmdbg, lmdbg plazo, y lmdbg-sym y correcciones menores a lmdbg-stat.
  • lmdbg es ahora una herramienta meta que es capaz de hacer muchas más cosas, no sólo encontrar pérdidas de memoria.

¿Cuál es nuevo en la versión 0.15.1:

  • Registro de calloc (3) invocaciones está desactivado en sistemas basados ​​en glibc (Linux, GNU / kFreeBSD, y tal vez otros) porque lmdbg plazo falla en ellos.
  • limpiezas menores, correcciones y mejoras. mk-configure & gt;. Se requiere = 0,20 para la construcción

¿Qué hay de nuevo en la versión 0.14.0:

  • Las nuevas herramientas: lmdbg-stat, lmdbg-grep y lmdbg-tipo para la recogida y análisis de información estadística sobre las asignaciones de memoria.
  • lmdbg plazo: nuevas opciones para lmdbg plazo:. -S Y -M para generar stacktraces acortados
  • lmdbg-sym:. -p Nueva opción para obtener el nombre del programa de salida de lmdbg plazo
  • Ajuste: 'test mkcmake' elimina los archivos temporales
  • .

Programas parecidos

DBG
DBG

3 Jun 15

DBGMEM
DBGMEM

3 Jun 15

glibc-audit
glibc-audit

3 Jun 15

ngrep
ngrep

2 Jun 15

Otro software de desarrollador Aleksey Cheusov

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

Comentarios a la LMDBG

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!