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

FreeBSD Manual Pages

  
 
  

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 external programs, gdb(1) or addr2line(1).  The result may look like
       the following

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

AUTHOR
       Aleksey Cheusov <vle@gmx.net>

				  Sep 2, 2012			  LMDBG-SYM(1)

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

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

home | help