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

Rating: 3.5/5 (Total Votes: 2)

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

rpdb
rpdb

14 Apr 15

Electric Fence
Electric Fence

3 Jun 15

MBW
MBW

18 Feb 15

Fiddler for Mono
Fiddler for Mono

17 Feb 15

Otro software de desarrollador Aleksey Cheusov

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

runawk
runawk

19 Feb 15

Comentarios a la LMDBG

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