Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

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.


Note: Consistency checking isn't performed on blocks that you allocated before calling mcheck().

The level of checking provided depends on which version of the allocator you've linked the application with:


Note: You can call mcheck() only once in a program.

Returns:

-1
Checking is already enabled.
0
Checking wasn't already enabled.

Classification:

QNX Neutrino

Safety:
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes

See also:

mallopt(), mprobe()

Heap Analysis in the Programmer's Guide