leaks man page on Darwin

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
Darwin logo
[printable version]

leaks(1)		  BSD General Commands Manual		      leaks(1)

     leaks — Search a process's memory for unreferenced malloc buffers

     leaks pid | partial-executable-name [-nocontext] [-nostacks]
	   [-exclude symbol] [-trace address]

     leaks identifies leaked memory -- memory that the application has allo‐
     cated, but has been lost and cannot be freed.  Specifically, leaks exam‐
     ines a specified process's memory for values that may be pointers to mal‐
     loc-allocated buffers.  Any buffer reachable from a pointer in writable
     global memory (e.g., __DATA segments), a register, or on the stack is
     assumed to be memory in use.  Any buffer reachable from a pointer in a
     reachable malloc-allocated buffer is also assumed to be in use.  The buf‐
     fers which are not reachable are leaks; the buffers could never be freed
     because no pointer exists in memory to the buffer, and thus free() could
     never be called for these buffers.	 Such buffers waste memory; removing
     them can reduce swapping and memory usage.	 Leaks are particularly dan‐
     gerous for long-running programs, for eventually the leaks could fill
     memory and cause the application to crash.

     leaks requires one parameter -- either the process ID or executable name
     of the process to examine.	 It also takes several arguments for modifying
     its behavior.

     For each leaked buffer that is found, leaks prints the address of the
     leaked memory and its size.  If leaks can determine that the object is an
     instance of an Objective-C, CoreFoundation, or C++ class, or a CFType, it
     also specifies the name and type of the class, and the binary image that
     implements the class.  It then prints a string or hexadecimal representa‐
     tion of the contents of the memory, unless the -nocontext option was

     If the MallocStackLogging environment variable was set when the applica‐
     tion was launched, leaks also prints a stack trace describing where the
     buffer was allocated.

     -nocontext	    Do not print the string or hex representation of leaked
		    memory.  Although that information can be useful for rec‐
		    ognizing the contents of the buffer and understanding why
		    it might be leaked, it can also provide overwhelming
		    detail, and could expose confidential information from
		    your process if you, for example, file bug reports with
		    that output included.

     -nostacks	    Do not print backtraces of leaked blocks even if the tar‐
		    get process has the MallocStackLogging environment vari‐
		    able set.

     -exclude symbol
		    Exclude leaked blocks whose backtraces include the speci‐
		    fied symbol.  This option can be repeated for multiple
		    symbols.  This allows ignoring leaks that, for example,
		    are allocated in libraries for which you do not have
		    source code.

     -trace address
		    Print chains of references from process 'roots' (e.g.,
		    global data, registers, or locations on stacks) to the
		    given block.  This is useful for determining what is hold‐
		    ing onto a buffer such that it has not been freed.

     The leaks command may detect more leaks if the target process is run with
     the MallocScribble environment variable.  If this variable is set then
     when malloc blocks are deallocated they are filled with 0x55 bytes, thus
     overwriting any "stale" data such as pointers remaining in those blocks.
     This reduces the number of false pointers remaining in the process mem‐

     The leaks command exits with one of the following values:

     0	   No leaks were detected.
     1	   One or more leaks were detected.
     >1	   An error occurred.

     malloc(3), heap(1), malloc_history(1), stringdups(1), vmmap(1),

     The Xcode developer tools also include Instruments, a graphical applica‐
     tion that can give information similar to that provided by leaks. The
     Allocations instrument graphically displays dynamic, real-time informa‐
     tion about the object and memory use in an application, including back‐
     traces of where the allocations occurred.	The Leaks instrument performs
     memory leak analysis.

BSD				 Mar. 16, 2013				   BSD

List of man pages available for Darwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net