Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

RedHat 9 (Linux i386) - man page for njamdpm (redhat section 1)

NJAMDPM(1)			     General Commands Manual			       NJAMDPM(1)

       njamdpm - Not Just Another Malloc Debugger Post-Mortem

       njamdpm [OPTIONS] <HEAP FILE>

       njamdpm	is  a  companion  utility that allows you to examine the persistent heap saved by
       libnjamd(3) You can do things like query for certain addresses,	show  memory  leaks,  and
       show all past allocated memory. As of NJAMD 0.6.0, gdb(1) is required to make sense of the
       return addresses.

       HEAP FILE
	      The heap	file  will  be	in  the  current  directory  with  a  name  of	the  form
	      njamd-<pid>-heap,  but  only if NJAMD_PERSISTANT_HEAP was in the environment at the
	      time of program execution

       -a address
	      Search through the heap file for a chunk of memory that contains address.  This can
	      be  VERY helpful when using gdb. Simply find the address that you accessed to cause
	      the segmentation fault, use njamdpm to look it up in the heap, and viola! You  have
	      all  sorts  of  info about the chunk: When it was allocated, when it was freed, how
	      big is is, etc.

       -d depth
	      When displaying return address info, only display depth return addresses.  The  max
	      is specified in ./include/lib/njamd.h in the define TRACE_DEPTH (default is 3).

       -t     Trim the heap file down to only the used portion. This is useful if for some reason
	      the program somehow exits without trimming its own heap file down first. Note  that
	      when the heap file appears huge it's not actually taking up disk space.

       -s     Dump  basic  status  info  about peak memory usage, NJAMD overhead, etc. Useful for
	      determining if you should buy more ram, or write me an angry email :)

       -l     Dump memory leaks in the heap. Also shows you  info  about  where  the  memory  was
	      leaked,  along  with a total. Do note that this total and the subtotals are aligned
	      bytes. They are aligned to the alignment of your architecture, or as  specified  by
	      the value the NJAMD_ALIGN environment variable had when the heap was created.

       -f     Dump  freed memory in the heap. This option is only available if LIBNJAMD ran with-
	      out NJAMD_CHK_FREE=none set.

   Using gdb with njamdpm
       When a segmentation fault happens, it's	because,  of  course,  you  accessed  an  invalid
       address.  So  all you need to do is get gdb to give you the address you accessed, and then
       feed it to njamdpm. Ie if the segfault occurs on a line that does buf[i] = 2, issue  print
       &buf[i]	to gdb. Note that libnjamd(3) now has a function __nj_ptr_info that can be called
       from gdb that performs all this without njamdpm.

       To get gdb to translate these return addresses into something meaningful, issue

       info line *0xaddress

       to obtain the line number of the allocation request, or

       list *0xaddress

       to see the adjacent code as well.

       Eventually I hope to add symbol translation right into njamdpm.

       Mike Perry <mikepery@fscked.org>


       njamd(3), efence(3), malloc(3), mmap(2), mprotect(2)

					NJAMD - 5 Oct 2000			       NJAMDPM(1)

All times are GMT -4. The time now is 04:07 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password