GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
LMDBG(1) LMDBG(1)

lmdbg - memory debugging tool

lmdbg [OPTIONS] <prog> [args...]

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 consumption ( -M peak ), the number of calls to memory allocation functions ( -M allocs ) and the highest size of memory allocated by a single invocation 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.

-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 default.
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 allocation functions.
m or max
Rank stacktraces by the highest amount of memory allocated 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.

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

$ 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
 
$

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-modules(1)

Aleksey Cheusov <vle@gmx.net>
November 26, 2011

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.