@@ -81,12 +81,18 @@ extern "C" {
81
81
void * __real__realloc_r (struct _reent * r, void * ptr, size_t size);
82
82
void __real__free_r (struct _reent * r, void * ptr);
83
83
void * __real__calloc_r (struct _reent * r, size_t nmemb, size_t size);
84
+ void * malloc_wrapper (struct _reent * r, size_t size, void * caller);
85
+ void free_wrapper (struct _reent * r, void * ptr, void * caller);
84
86
}
85
87
86
88
// TODO: memory tracing doesn't work with uVisor enabled.
87
89
#if !defined(FEATURE_UVISOR)
88
90
89
91
extern " C" void * __wrap__malloc_r (struct _reent * r, size_t size) {
92
+ return malloc_wrapper (r, size, MBED_CALLER_ADDR ());
93
+ }
94
+
95
+ extern " C" void * malloc_wrapper (struct _reent * r, size_t size, void * caller) {
90
96
void *ptr = NULL ;
91
97
#ifdef MBED_MEM_TRACING_ENABLED
92
98
mbed_mem_trace_lock ();
@@ -111,7 +117,7 @@ extern "C" void * __wrap__malloc_r(struct _reent * r, size_t size) {
111
117
ptr = __real__malloc_r (r, size);
112
118
#endif // #ifdef MBED_HEAP_STATS_ENABLED
113
119
#ifdef MBED_MEM_TRACING_ENABLED
114
- mbed_mem_trace_malloc (ptr, size, MBED_CALLER_ADDR () );
120
+ mbed_mem_trace_malloc (ptr, size, caller );
115
121
mbed_mem_trace_unlock ();
116
122
#endif // #ifdef MBED_MEM_TRACING_ENABLED
117
123
return ptr;
@@ -160,6 +166,10 @@ extern "C" void * __wrap__realloc_r(struct _reent * r, void * ptr, size_t size)
160
166
}
161
167
162
168
extern " C" void __wrap__free_r (struct _reent * r, void * ptr) {
169
+ free_wrapper (r, ptr, MBED_CALLER_ADDR ());
170
+ }
171
+
172
+ extern " C" void free_wrapper (struct _reent * r, void * ptr, void * caller) {
163
173
#ifdef MBED_MEM_TRACING_ENABLED
164
174
mbed_mem_trace_lock ();
165
175
#endif
@@ -177,7 +187,7 @@ extern "C" void __wrap__free_r(struct _reent * r, void * ptr) {
177
187
__real__free_r (r, ptr);
178
188
#endif // #ifdef MBED_HEAP_STATS_ENABLED
179
189
#ifdef MBED_MEM_TRACING_ENABLED
180
- mbed_mem_trace_free (ptr, MBED_CALLER_ADDR () );
190
+ mbed_mem_trace_free (ptr, caller );
181
191
mbed_mem_trace_unlock ();
182
192
#endif // #ifdef MBED_MEM_TRACING_ENABLED
183
193
}
0 commit comments