How to use SystemView Heap Monitoring - Custom Heap

From SEGGER Wiki
Jump to: navigation, search

This article assumes a working SystemView setup. To gain some more info on this subject, please consult either the main article (How to use SystemView Heap_Monitoring) or the SystemView documentation. static void* _MyMalloc(size_t size) {

 void* p = malloc(size);
 // SystemView needs the real internal heap block size, not the amount requested by the user,
 // hence the call to a helper function _GetAllocBlockSize for the currently selected heap type ('Basic')
 SEGGER_SYSVIEW_HeapAlloc(__heap_start__, p, _GetAllocBlockSize(size));
 return p;

}

static void* _MyRealloc(void* p, size_t size) {

 void* rp = realloc(p, size);
 SEGGER_SYSVIEW_HeapFree(__heap_start__, p);
 // SystemView needs the real internal heap block size, not the amount requested by the user,
 // hence the call to a helper function _GetAllocBlockSize for the currently selected heap type ('Basic')
 SEGGER_SYSVIEW_HeapAlloc(__heap_start__, rp, _GetAllocBlockSize(size));
 return rp;

}


static void _MyFree(void* p) {

 free(p);
 SEGGER_SYSVIEW_HeapFree(__heap_start__, p);

}