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

  
 
  

home | help
LMDBG-SYM(1)							    LMDBG-SYM(1)

NAME
     lmdbg-sym - convert lmdbg-run addresses to source code positions.

SYNOPSIS
     lmdbg-sym [OPTIONS] [files...]

DESCRIPTION
     lmdbg-sym	lmdbg-sym  takes  as  input a log file generated by lmdbg-run or
     other lmdbg-* programs and converts addresses to source code positions  and
     function  names  if it is possible. This is accomplished with a help of ex-
     ternal programs, gdb(1) or addr2line(1).  The result may look like the fol-
     lowing

      realloc ( 0xbb901800 , 777 ) --> 0xbb901c00
       0xbbbe58e8
       0xbbbe5a37
       0x8048764     tests/test2.c:10	   main
       0x8048584
       0x80484e7

     Here lmdbg-sym found out that the address	0x8048764  corresponded  to  the
     function main, in the source file tests/test2.c at the line number 10.  The
     address,  the source file name and the function name are separated by a TAB
     character.  Several log files can be analysed with  lmdbg-sym  as	long  as
     they refer to a single program.

OPTIONS
     -h     Display the help message.

     -V     Display the lmdbg version.

     -g     Use gdb(1) for resolving symbols. This is the default.

     -a     Use addr2line(1) for resolving symbols.

     -P progname
	    Specify  the  path	to  the  program  the log file of which is being
	    analysed.  If not given, the program path is used that is  found  in
	    the logfile.

     -s library:flags
	    Specify the library to open with dlopen(3) and flags, separated by a
	    colon   character.	 Allowed  flags  are:  RTLD_LAZY,  RTLD_NOW  and
	    RTLD_GLOBAL .  This option can be used repeatedly.

ENVIRONMENT
     LMDBG_LIB
	    Path to LD_PRELOAD'ed  liblmdbg  dynamic  library.	It  defaults  to
	    /usr/local/lib/liblmdbg.so

     LMDBG_GDB
	    gdb(1) program to run, defaults to gdb.

EXAMPLE
     $ cat -n testme.c
	  1 #include <stdlib.h>
	  2
	  3  int main ()
	  4  {
	  5	int i;
	  6	void *p1, *p2;
	  7	p1 = malloc (100);
	  8	for (i=0; i < 3; ++i){
	  9	   p2 = realloc (NULL, 10+30*i);
	 10	}
	 11	free (p1);
	 12	free (p2);
	 13
	 14	return 0;
	 15  }
     $ cc -O0 -g -o testme testme.c
     $ lmdbg-run -T2 -B2 -f 'lmdbg-sym' -o log ./testme
     $ cat log
     info progname ./testme
     malloc ( 100 ) --> 0xbb901080 num: 1
      0x8048789      testme.c:7      main
     realloc ( NULL , 10 ) --> 0xbb903040 num: 2
      0x80487bb      testme.c:9      main
     realloc ( NULL , 40 ) --> 0xbb905070 num: 3
      0x80487bb      testme.c:9      main
     realloc ( NULL , 70 ) --> 0xbb904060 num: 4
      0x80487bb      testme.c:9      main
     free ( 0xbb901080 ) num: 5
      0x80487d7      testme.c:12     main
     free ( 0xbb904060 ) num: 6
      0x80487e3      testme.c:14     main
     $

EXAMPLE
     lmdbg-sym -h
     lmdbg-sym -V
     lmdbg-run -o _log ./my_app &&
       lmdbg-leaks _log > _log_leaks &&
       lmdbg-sym -a ./my_app _log_leaks > _log_leaks2 &&
       lmdbg-sysleaks -s _log_leaks2 > _log_final
     lmdbg-run -p 'lmdbg-leaks | lmdbg-sym -p > _log' ./my_app <args>
     lmdbg-sym -g -s /path/to/dll1.so RTLD_NOW -p < _log

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

AUTHOR
     Aleksey Cheusov <vle@gmx.net>

				   Sep 2, 2012			    LMDBG-SYM(1)

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

home | help