From: Mathieu Desnoyers Date: Wed, 10 Jun 2015 11:15:09 +0000 (+0200) Subject: Fix: lttng-ust-malloc ip context X-Git-Tag: v2.5.5~4 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=e1ec8f94435f2af1267d4cffb473a56eb14f3d09;p=lttng-ust.git Fix: lttng-ust-malloc ip context Signed-off-by: Mathieu Desnoyers --- diff --git a/liblttng-ust-libc-wrapper/lttng-ust-malloc.c b/liblttng-ust-libc-wrapper/lttng-ust-malloc.c index 54afb144..27624a3d 100644 --- a/liblttng-ust-libc-wrapper/lttng-ust-malloc.c +++ b/liblttng-ust-libc-wrapper/lttng-ust-malloc.c @@ -31,6 +31,7 @@ #define TRACEPOINT_DEFINE #define TRACEPOINT_CREATE_PROBES +#define TP_IP_PARAM ip #include "ust_libc.h" #define STATIC_CALLOC_LEN 4096 @@ -260,7 +261,8 @@ void *malloc(size_t size) } retval = cur_alloc.malloc(size); if (URCU_TLS(malloc_nesting) == 1) { - tracepoint(ust_libc, malloc, size, retval); + tracepoint(ust_libc, malloc, size, retval, + __builtin_return_address(0)); } URCU_TLS(malloc_nesting)--; return retval; @@ -279,7 +281,8 @@ void free(void *ptr) } if (URCU_TLS(malloc_nesting) == 1) { - tracepoint(ust_libc, free, ptr); + tracepoint(ust_libc, free, ptr, + __builtin_return_address(0)); } if (cur_alloc.free == NULL) { @@ -308,7 +311,8 @@ void *calloc(size_t nmemb, size_t size) } retval = cur_alloc.calloc(nmemb, size); if (URCU_TLS(malloc_nesting) == 1) { - tracepoint(ust_libc, calloc, nmemb, size, retval); + tracepoint(ust_libc, calloc, nmemb, size, retval, + __builtin_return_address(0)); } URCU_TLS(malloc_nesting)--; return retval; @@ -360,7 +364,8 @@ void *realloc(void *ptr, size_t size) retval = cur_alloc.realloc(ptr, size); end: if (URCU_TLS(malloc_nesting) == 1) { - tracepoint(ust_libc, realloc, ptr, size, retval); + tracepoint(ust_libc, realloc, ptr, size, retval, + __builtin_return_address(0)); } URCU_TLS(malloc_nesting)--; return retval; @@ -380,7 +385,8 @@ void *memalign(size_t alignment, size_t size) } retval = cur_alloc.memalign(alignment, size); if (URCU_TLS(malloc_nesting) == 1) { - tracepoint(ust_libc, memalign, alignment, size, retval); + tracepoint(ust_libc, memalign, alignment, size, retval, + __builtin_return_address(0)); } URCU_TLS(malloc_nesting)--; return retval; @@ -401,7 +407,7 @@ int posix_memalign(void **memptr, size_t alignment, size_t size) retval = cur_alloc.posix_memalign(memptr, alignment, size); if (URCU_TLS(malloc_nesting) == 1) { tracepoint(ust_libc, posix_memalign, *memptr, alignment, size, - retval); + retval, __builtin_return_address(0)); } URCU_TLS(malloc_nesting)--; return retval; diff --git a/liblttng-ust-libc-wrapper/ust_libc.h b/liblttng-ust-libc-wrapper/ust_libc.h index a8ff9c65..632d95de 100644 --- a/liblttng-ust-libc-wrapper/ust_libc.h +++ b/liblttng-ust-libc-wrapper/ust_libc.h @@ -33,7 +33,7 @@ extern "C" { #include TRACEPOINT_EVENT(ust_libc, malloc, - TP_ARGS(size_t, size, void *, ptr), + TP_ARGS(size_t, size, void *, ptr, void *, ip), TP_FIELDS( ctf_integer(size_t, size, size) ctf_integer_hex(void *, ptr, ptr) @@ -41,14 +41,14 @@ TRACEPOINT_EVENT(ust_libc, malloc, ) TRACEPOINT_EVENT(ust_libc, free, - TP_ARGS(void *, ptr), + TP_ARGS(void *, ptr, void *, ip), TP_FIELDS( ctf_integer_hex(void *, ptr, ptr) ) ) TRACEPOINT_EVENT(ust_libc, calloc, - TP_ARGS(size_t, nmemb, size_t, size, void *, ptr), + TP_ARGS(size_t, nmemb, size_t, size, void *, ptr, void *, ip), TP_FIELDS( ctf_integer(size_t, nmemb, nmemb) ctf_integer(size_t, size, size) @@ -57,7 +57,7 @@ TRACEPOINT_EVENT(ust_libc, calloc, ) TRACEPOINT_EVENT(ust_libc, realloc, - TP_ARGS(void *, in_ptr, size_t, size, void *, ptr), + TP_ARGS(void *, in_ptr, size_t, size, void *, ptr, void *, ip), TP_FIELDS( ctf_integer_hex(void *, in_ptr, in_ptr) ctf_integer(size_t, size, size) @@ -66,7 +66,7 @@ TRACEPOINT_EVENT(ust_libc, realloc, ) TRACEPOINT_EVENT(ust_libc, memalign, - TP_ARGS(size_t, alignment, size_t, size, void *, ptr), + TP_ARGS(size_t, alignment, size_t, size, void *, ptr, void *, ip), TP_FIELDS( ctf_integer(size_t, alignment, alignment) ctf_integer(size_t, size, size) @@ -75,7 +75,8 @@ TRACEPOINT_EVENT(ust_libc, memalign, ) TRACEPOINT_EVENT(ust_libc, posix_memalign, - TP_ARGS(void *, out_ptr, size_t, alignment, size_t, size, int, result), + TP_ARGS(void *, out_ptr, size_t, alignment, size_t, size, int, result, + void *, ip), TP_FIELDS( ctf_integer_hex(void *, out_ptr, out_ptr) ctf_integer(size_t, alignment, alignment)