Node:Tracing malloc, Next:Using the Memory Debugger, Up:Allocation Debugging
void mtrace (void) | Function |
When the mtrace function is called it looks for an environment
variable named MALLOC_TRACE . This variable is supposed to
contain a valid file name. The user must have write access. If the
file already exists it is truncated. If the environment variable is not
set or it does not name a valid file which can be opened for writing
nothing is done. The behaviour of malloc etc. is not changed.
For obvious reasons this also happens if the application is installed
with the SUID or SGID bit set.
If the named file is successfully opened, mtrace installs special
handlers for the functions malloc , realloc , and
free (see Hooks for Malloc). From then on, all uses of these
functions are traced and protocolled into the file. There is now of
course a speed penalty for all calls to the traced functions so tracing
should not be enabled during normal use.
This function is a GNU extension and generally not available on other
systems. The prototype can be found in mcheck.h .
|
void muntrace (void) | Function |
The muntrace function can be called after mtrace was used
to enable tracing the malloc calls. If no (succesful) call of
mtrace was made muntrace does nothing.
Otherwise it deinstalls the handlers for malloc , realloc ,
and free and then closes the protocol file. No calls are
protocolled anymore and the program runs again at full speed.
This function is a GNU extension and generally not available on other
systems. The prototype can be found in mcheck.h .
|