Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LMDBG(1)							      LMDBG(1)

NAME
       lmdbg - memory debugging	tool

SYNOPSIS
       lmdbg [OPTIONS] _prog_ [args...]

DESCRIPTION
       lmdbg runs an external program prog , collects run-time information and
       saves it	to a specified log file. More particulary, lmdbg is  able  of:
       decoding	 all symbols in	the source code	(function names, file name and
       position	in the file); discovering all memory leaks  (  -M  default  );
       finding	per-stacktrace	memory leaks and ranking them from the largest
       to the smallest ( -M leaks ); gathering (and ranking) various types  of
       per-stacktrace run time statistics, such	as the highest memory consump-
       tion ( -M peak ), the number of calls to	memory allocation functions  (
       -M  allocs ) and	the highest size of memory allocated by	a single invo-
       cation of malloc	function ( -M max ).  To accomplish the	 above	tasks,
       lmdbg  ,	 as a meta tool, manages a set of low level lmdbg-* utilities,
       namely, lmdbg-run, lmdbg-leaks, lmdbg-sym,  lmdbg-sysleaks,  lmdbg-sort
       and lmdbg-stat.

OPTIONS
       -h     Display the help message.

       -V     Display the lmdbg	version.

       -o filename
	      Specify the log file to save data	to.

       -M mode
	      Specify the task to do, mode is either of	the following:

	      d	or default
		     Show  all	stacktraces with memory	leaks. This is the de-
		     fault.

	      l	or leaks
		     Rank stacktraces by memory	leaks.

	      p	or peak
		     Rank stacktraces by the peak memory consumption.

	      a	or allocs
		     Rank stacktraces by the number of calls to	memory alloca-
		     tion functions.

	      m	or max
		     Rank  stacktraces	by  the	highest	amount of memory allo-
		     cated in a	single invocation of malloc function.

       -c filename
	      This option is passed to lmdbg-sysleaks(1).

       -a     This option is passed to lmdbg-sym(1).

       -g     This option is passed to lmdbg-sym(1).

       -n     This option is passed to lmdbg-run(1).

       -T num This option is passed to lmdbg-run(1).

       -B num This option is passed to lmdbg-run(1).

       -v     Enable verbose mode.

FILES
       ~/.lmdbg.conf or	/usr/local/etc/lmdbg.conf
	      lmdbg configuration file

EXAMPLE
       $ cat test3.c
       #include	<stdlib.h>

       int main	()
       {
	  int i;
	  void *p1, *p2;
	  p1 = malloc (900);
	  for (i=0; i <	3; ++i){
	     p2	= realloc (NULL, 10+300*i);
	  }
	  free (p1);
	  free (p2);

	  return 0;
       }
       $ cc -O0	-g -o test3 test3.c
       $ lmdbg -o log ./test3; cat log
       realloc ( NULL ,	10 ) --> 0xbb901040 num: 2
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:545     realloc
	     test3.c:9	     main

       realloc ( NULL ,	310 ) --> 0xbb912140 num: 3
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:545     realloc
	     test3.c:9	     main

       $ lmdbg -M leaks	-o log ./test3;	cat log
       info progname ./test3
       info stat total_allocs: 2
       info stat total_free_cnt: 0
       info stat total_leaks: 320
       stacktrace peak:	320 max: 310 allocs: 2 leaks: 320
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:545     realloc
	     test3.c:9	     main

       $ lmdbg -M peak -o log ./test3; cat log
       info progname ./test3
       info stat total_allocs: 4
       info stat total_free_cnt: 2
       info stat total_leaks: 320
       stacktrace peak:	930 max: 610 allocs: 3 leaks: 320
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:545     realloc
	     test3.c:9	     main

       stacktrace peak:	900 max: 900 allocs: 1
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:509     malloc
	     test3.c:7	     main

       $ lmdbg -M max -o log ./test3; cat log
       info progname ./test3
       info stat total_allocs: 4
       info stat total_free_cnt: 2
       info stat total_leaks: 320
       stacktrace peak:	900 max: 900 allocs: 1
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:509     malloc
	     test3.c:7	     main

       stacktrace peak:	930 max: 610 allocs: 3 leaks: 320
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:545     realloc
	     test3.c:9	     main

       $ lmdbg -M allocs -o log	./test3; cat log
       info progname ./test3
       info stat total_allocs: 4
       info stat total_free_cnt: 2
       info stat total_leaks: 320
       stacktrace peak:	930 max: 610 allocs: 3 leaks: 320
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:545     realloc
	     test3.c:9	     main

       stacktrace peak:	900 max: 900 allocs: 1
	     lmdbg.c:140     log_stacktrace
	     lmdbg.c:509     malloc
	     test3.c:7	     main

       $

SEE ALSO
       lmdbg-run(1),  lmdbg-sym(1),   lmdbg-stat(1),   lmdbg-sort(1),	lmdbg-
       grep(1),	 lmdbg-leaks(1), lmdbg-sysleaks(1), lmdbg-strip(1), lmdbg-mod-
       ules(1)

AUTHOR
       Aleksey Cheusov <vle@gmx.net>

				 Nov 26, 2011			      LMDBG(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | FILES | EXAMPLE | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=lmdbg&sektion=1&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help