Mbed OS Reference
|
Typedefs | |
typedef void(* | mbed_mem_trace_cb_t) (uint8_t op, void *res, void *caller,...) |
Type of the callback used by the memory tracer. More... | |
Functions | |
void | mbed_mem_trace_set_callback (mbed_mem_trace_cb_t cb) |
Set the callback used by the memory tracer (use NULL for disable tracing). More... | |
void | mbed_mem_trace_disable () |
Disable the memory trace output by disabling the callback function. More... | |
void | mbed_mem_trace_enable () |
Re-enable the memory trace output with the cb in use when disable was called. More... | |
void | mbed_mem_trace_lock () |
Trace lock. More... | |
void | mbed_mem_trace_unlock () |
Trace unlock. More... | |
void * | mbed_mem_trace_malloc (void *res, size_t size, void *caller) |
Trace a call to 'malloc'. More... | |
void * | mbed_mem_trace_realloc (void *res, void *ptr, size_t size, void *caller) |
Trace a call to 'realloc'. More... | |
void * | mbed_mem_trace_calloc (void *res, size_t num, size_t size, void *caller) |
Trace a call to 'calloc'. More... | |
void | mbed_mem_trace_free (void *ptr, void *caller) |
Trace a call to 'free'. More... | |
void | mbed_mem_trace_default_callback (uint8_t op, void *res, void *caller,...) |
Default memory trace callback. More... | |
typedef void(* mbed_mem_trace_cb_t) (uint8_t op, void *res, void *caller,...) |
Type of the callback used by the memory tracer.
This callback is called when a memory allocation operation (malloc, realloc, calloc, free) is called and tracing is enabled for that memory allocation function.
op | the ID of the operation (MBED_MEM_TRACE_MALLOC, MBED_MEM_TRACE_REALLOC, MBED_MEM_TRACE_CALLOC or MBED_MEM_TRACE_FREE). |
res | the result that the memory operation returned (NULL for 'free'). |
caller | the caller of the memory operation. Note that the value of 'caller' might be unreliable. |
The rest of the parameters passed 'mbed_mem_trace_cb_t' are the same as the memory operations that triggered its call (see 'man malloc' for details):
Definition at line 68 of file mbed_mem_trace.h.
void mbed_mem_trace_set_callback | ( | mbed_mem_trace_cb_t | cb | ) |
Set the callback used by the memory tracer (use NULL for disable tracing).
cb | the callback to call on each memory operation. |
void mbed_mem_trace_disable | ( | ) |
Disable the memory trace output by disabling the callback function.
void mbed_mem_trace_enable | ( | ) |
Re-enable the memory trace output with the cb in use when disable was called.
void mbed_mem_trace_lock | ( | ) |
Trace lock.
void mbed_mem_trace_unlock | ( | ) |
Trace unlock.
void * mbed_mem_trace_malloc | ( | void * | res, |
size_t | size, | ||
void * | caller | ||
) |
Trace a call to 'malloc'.
res | the result of running 'malloc'. |
size | the 'size' argument given to 'malloc'. |
caller | the caller of the memory operation. |
void * mbed_mem_trace_realloc | ( | void * | res, |
void * | ptr, | ||
size_t | size, | ||
void * | caller | ||
) |
Trace a call to 'realloc'.
res | the result of running 'realloc'. |
ptr | the 'ptr' argument given to 'realloc'. |
size | the 'size' argument given to 'realloc'. |
caller | the caller of the memory operation. |
void * mbed_mem_trace_calloc | ( | void * | res, |
size_t | num, | ||
size_t | size, | ||
void * | caller | ||
) |
Trace a call to 'calloc'.
res | the result of running 'calloc'. |
num | the 'nmemb' argument given to 'calloc'. |
size | the 'size' argument given to 'calloc'. |
caller | the caller of the memory operation. |
void mbed_mem_trace_free | ( | void * | ptr, |
void * | caller | ||
) |
Trace a call to 'free'.
ptr | the 'ptr' argument given to 'free'. |
caller | the caller of the memory operation. |
void mbed_mem_trace_default_callback | ( | uint8_t | op, |
void * | res, | ||
void * | caller, | ||
... | |||
) |
Default memory trace callback.
DO NOT CALL DIRECTLY. It is meant to be used as the second argument of 'mbed_mem_trace_setup'.
The default callback outputs trace data using 'printf', in a format that's easily parsable by an external tool. For each memory operation, the callback outputs a line that begins with "#<op>:<0xresult>;<0xcaller>-":
op | identifies the memory operation ('m' for 'malloc', 'r' for 'realloc', 'c' for 'calloc' and 'f' for 'free'). |
res | (base 16) is the result of the memory operation. This is always NULL for 'free', since 'free' doesn't return anything. |
caller | (base 16) is the caller of the memory operation. Note that the value of 'caller' might be unreliable. |
The rest of the output depends on the operation being traced:
Examples: