This lists common operations related to heap management and the RT kernel system calls that do the operations:
To . . . | Use this system call . . . |
---|---|
Confirm the integrity of the memory blocks allocated in the debug heap | _CrtCheckMemory |
Generate a report with a debug message and send the report to three possible destinations | _CrtDbgReport |
Call an application-supplied function for all _CLIENT_BLOCK types in the heap | _CrtDoForAllClientObjects |
Dump all the memory blocks in the debug heap when a memory leak occurs | _CrtDumpMemoryLeaks |
Retrieve the current client-defined allocation function for hooking into the C runtime debug memory allocation process | _CrtGetAllocHook |
Retrieve the current application-defined function for dumping the _CLIENT_BLOCK type memory blocks | _CrtGetDumpClient |
Retrieve the client-defined reporting function for hooking it into the C runtime library for the debug reporting process | _CrtGetReportHook |
Verify that a specified memory block is in the local heap and that it has a valid debug heap block type identifier | _CrtIsMemoryBlock |
Verify that the local heap contains the specified pointer | _CrtIsValidHeapPointer |
Obtain the debug heap's current state and store it in an application-supplied _CrtMemState structure | _CrtMemCheckpoint |
Compare two memory states and return their difference | _CrtMemDifference |
Dump information about objects in the heap from the start of program execution or from a specified heap state | _CrtMemDumpAllObjectsSince |
Dump the debug header information for a specified heap state in a user-readable form | _CrtMemDumpStatistics |
Return the block type/subtype associated with a given debug heap block pointer | _CrtReportBlockType |
Install a client-defined allocation function by hooking it into the C runtime debug memory allocation process | _CrtSetAllocHook |
Set a breakpoint on a specified object allocation order number | _CrtSetBreakAlloc |
Retrieve or modify the _crtDbgFlag flag state to control the debug heap manager's allocation behavior | _CrtSetDbgFlag |
Install an application-defined function to dump _CLIENT_BLOCK type memory blocks | _CrtSetDumpClient |
Specify the file handle to receive the message text after specifying _CRTDBG_MODE_FILE with _CrtSetReportMode | _CrtSetReportFile |
Install a client-defined reporting function by hooking it into the C runtime debug reporting process | _CrtSetReportHook |
Specify the destination(s) for a specific report type generated by _CrtDbgReport and any macros that call _CrtDbgReport or _CrtDbgReportW | _CrtSetReportMode |
Add a new chunk to the heap. | heap_add_chunk |
Return the current number of buffers created by calloc, malloc, or realloc | heap_buffer_cnt |
Report the size of a buffer returned by calloc, malloc, or realloc | heap_buffer_size |
Check the heap for internal consistency | heap_check |
Return memory pages released (via free) and no longer in use | heap_compact |
Dump heap statistics and list to the console or to a file | heap_dump |
Get the basic heap allocation block's size | heap_get_blk_size |
Get the heap's configuration | heap_get_config |
Return the system page size | heap_get_page_size |
Set the basic heap allocation block's size | heap_set_blk_size |
Set the specified heap's configuration | heap_set_config |
Get the heap's statistics | heap_stats |
Reset the heap's statistics | heap_stats_reset |
Determine whether the buffer address is valid and exists within the heap | heap_validate_buffer |
Instruct the heap manager to clear all buffers when freed | heap_zap |
Add a new memory chunk to a memory pool | mpool_add_chunk |
Allocate a new buffer from a memory pool | mpool_alloc |
Return the current number of buffers created by mpool_alloc or mpool_realloc | mpool_buffer_cnt |
Return the size of a buffer returned by mpool_alloc or mpool_realloc | mpool_buffer_size |
Check the memory pool for internal consistency | mpool_check |
Return to the operating system pages of memory freed via mpool_free and no longer in use | mpool_compact |
Create a memory pool and return a handle to it | mpool_create |
Delete a memory pool and free all its resources | mpool_delete |
Dump memory pool statistics and list to the console or a file | mpool_dump |
Free a buffer allocated with mpool_alloc or mpool_realloc | mpool_free |
Get the configuration for a pool | mpool_get_config |
Retrieve the name associated with a pool | mpool_pool2name |
Retrieve the pool associated with a buffer | mpool_ptr2pool |
Change the size of a buffer allocated with mpool_alloc or mpool_realloc | mpool_realloc |
Restore a pool to its creation state | mpool_reset |
Set the configuration for a pool | mpool_set_config |
Get the statistics for a memory pool | mpool_stats |
Reset the statistics for a memory pool | mpool_stats_reset |
Determine whether the buffer address is valid and exists within a pool buffer | mpool_validate_buffer |