mcheck()
Enable memory allocation routine consistency checks
Synopsis:
#include <malloc.h> int mcheck( void (* abort_fn)(enum mcheck_status status));
Arguments:
- abort_fn
- A pointer to the callback function to invoke when an inconsistency
in the memory-allocation routines is found, or NULL if
you want to use the default callback routine.
The argument to the callback routine is one of the values of the mcheck_status enumeration described in the documentation for mprobe() .
The default abort callback prints a message to stderr and aborts the application.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The mcheck() function enables consistency checks within the memory allocation routines. When enabled, consistency checks are periodically performed on allocated memory blocks as blocks are allocated or freed. If an inconsistency is found, the abort callback is called with the status identifying the type of inconsistency found.
The level of checking provided depends on which version of the allocator you've linked the application with:
- C library — minimal consistency checking.
- Nondebug version of the malloc library — a slightly greater level of consistency checking.
- Debug version of the malloc library — extensive consistency checking, with tuning available through the use of the mallopt() function.
Returns:
- -1
- Checking is already enabled.
- 0
- Checking wasn't already enabled.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |