umem_debug man page on SunOS

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

umem_debug(3MALLOC)   Memory Allocation Library Functions  umem_debug(3MALLOC)

NAME
       umem_debug - debugging features of the umem library

SYNOPSIS
       cc [ flag... ] file... -lumem [ library... ]
       #include <umem.h>

DESCRIPTION
       The  libumem  library  provides	debugging  features that detect memory
       leaks, buffer overruns, multiple frees, use of uninitialized data,  use
       of freed data, and many other common programming errors. The activation
       of the run-time debugging features is controlled by  environment	 vari‐
       ables.

       When the library detects an error, it writes a description of the error
       to an internal buffer that is readable with  the	 ::umem_status	mdb(1)
       dcmd and then calls abort(3C).

ENVIRONMENT VARIABLES
       UMEM_DEBUG      This   variable	contains  a  list  of  comma-separated
		       options.	 Unrecognized options  are  ignored.  Possible
		       options include:

		       audit[=frames]

			   This	 option	 enables  the  recording  of  auditing
			   information, including thread  ID,  high-resolution
			   time	 stamp,	 and  stack  trace for the last action
			   (allocation	or  free)  on  every  allocation.   If
			   transaction	logging (see UMEM_LOGGING) is enabled,
			   this auditing information is also logged.

			   The frames  parameter  sets	the  number  of	 stack
			   frames  recorded  in	 the  auditing	structure. The
			   upper bound for frames  is  implementation-defined.
			   If  a larger value is requested, the upper bound is
			   used instead.

			   If frames is not specified or is  not  an  integer,
			   the default value of 15 is used.

			   This option also enables the guards option.

		       contents[=count]

			   If auditing and contents logging (see UMEM_LOGGING)
			   are enabled, the first count bytes of  each	buffer
			   are	logged	when  they  are freed.	If a buffer is
			   shorter than count  bytes,  it  is  logged  in  its
			   entirety.

			   If count is not specified or is not an integer, the
			   default value of 256 is used.

		       default

			   This option is equivalent to audit,contents,guards.

		       guards

			   This option enables	filling	 allocated  and	 freed
			   buffers  with  special  patterns to help detect the
			   use of uninitialized data and previously freed buf‐
			   fers.  It also enables an 8-byte redzone after each
			   buffer that contains 0xfeedfacefeedfaceULL.

			   When an object is freed, it is filled with  0xdead‐
			   beef.   When an object is allocated, the 0xdeadbeef
			   pattern is verified and replaced  with  0xbaddcafe.
			   The redzone is checked every time a buffer is allo‐
			   cated or freed.

			   For caches with either constructors or destructors,
			   or	   both,     umem_cache_alloc(3MALLOC)	   and
			   umem_cache_free(3MALLOC)  apply  the	 cache's  con‐
			   structor  and  destructor, respectively, instead of
			   caching  constructed	 objects.  The	 presence   of
			   assert(3C)s	in  the	 destructor verifying that the
			   buffer is in the constructed state can be  used  to
			   detect  any	objects returned in an improper state.
			   See umem_cache_create(3MALLOC) for details.

		       verbose

			   The library writes error descriptions  to  standard
			   error  before  aborting.  These  messages  are  not
			   localized.

       UMEM_LOGGING    To be enabled, this variable should be set to a	comma-
		       separated  list	of  in-memory logs. The logs available
		       are:

		       transaction[=size]

			   If  the  audit  debugging  option   is   set	  (see
			   UMEM_DEBUG),	 the  audit  structures	 from previous
			   transactions are entered into this log.

		       contents[=size]

			   If the audit debugging option is set, the  contents
			   of  objects	are  recorded  in this log as they are
			   freed.

			   If the "contents" debugging option was not set, 256
			   bytes of each freed buffer are saved.

		       fail[=size]

			   Records  are entered into this log for every failed
			   allocation.

		       For any of these options, if size is not specified, the
		       default	value of 64k is used.  The size parameter must
		       be an integer that can be qualified with K, M, G, or  T
		       to  specify  kilobytes,	megabytes,  gigabytes, or ter‐
		       abytes, respectively.

		       Logs that are not listed or that have either a size  of
		       0 or an invalid size are disabled.

		       The  log	 is  disabled  if  during  initialization  the
		       requested amount of storage cannot be allocated.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Unstable			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       mdb(1),	   abort(3C),	  signal(3C),	   umem_cache_create(3MALLOC),
       attributes(5)

       Solaris Modular Debugger Guide

WARNINGS
       When  libumem  aborts  the process using abort(3C), any existing signal
       handler for SIGABRT is called. If the signal handler  performs  alloca‐
       tions, undefined behavior can result.

NOTES
       Some  of	 the debugging features work only for allocations smaller than
       16 kilobytes in size. Allocations larger than 16 kilobytes  could  have
       reduced support.

       Activating  any of the library's debugging features could significantly
       increase the library's memory footprint and decrease its performance.

SunOS 5.10			 26 July 2002		   umem_debug(3MALLOC)
[top]

List of man pages available for SunOS

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]
Tweet
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