Perform consistency check on memory
#include <malloc.h> enum mcheck_status mprobe(void * ptr);
- A pointer to the start of the heap block.
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Consistency checks look for inconsistencies within the block header or in the block trailer byte. They may also detect block overruns.
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.
One of the values of the mcheck_status enumeration:
- Consistency checking isn't currently enabled, or consistency information isn't available for this block.
- There are no inconsistencies in this block.
- The block header is corrupted.
- The block trailer byte is corrupted or there has been a block overrun.
- The ptr argument doesn't point to an allocated heap block.
Calling mprobe() on a pointer already deallocated by a call to free() or realloc() could corrupt the memory allocator's data structures and result in undefined behavior.
The Heap Analysis chapter in the Programmer's Guide.