From a5be8e90fcf5f76a9ba0d5d06f131e5420266e0c Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 10 Jun 2015 13:15:28 +0200 Subject: [PATCH] Fix: pthread wrapper ip context Signed-off-by: Mathieu Desnoyers --- liblttng-ust-libc-wrapper/lttng-ust-pthread.c | 13 +++++++++---- liblttng-ust-libc-wrapper/ust_pthread.h | 8 ++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/liblttng-ust-libc-wrapper/lttng-ust-pthread.c b/liblttng-ust-libc-wrapper/lttng-ust-pthread.c index 45789aa3..0fb74ed8 100644 --- a/liblttng-ust-libc-wrapper/lttng-ust-pthread.c +++ b/liblttng-ust-libc-wrapper/lttng-ust-pthread.c @@ -22,6 +22,7 @@ #define TRACEPOINT_DEFINE #define TRACEPOINT_CREATE_PROBES +#define TP_IP_PARAM ip #include "ust_pthread.h" static __thread int thread_in_trace; @@ -46,9 +47,11 @@ int pthread_mutex_lock(pthread_mutex_t *mutex) } thread_in_trace = 1; - tracepoint(ust_pthread, pthread_mutex_lock_req, mutex); + tracepoint(ust_pthread, pthread_mutex_lock_req, mutex, + __builtin_return_address(0)); retval = mutex_lock(mutex); - tracepoint(ust_pthread, pthread_mutex_lock_acq, mutex, retval); + tracepoint(ust_pthread, pthread_mutex_lock_acq, mutex, retval, + __builtin_return_address(0)); thread_in_trace = 0; return retval; } @@ -74,7 +77,8 @@ int pthread_mutex_trylock(pthread_mutex_t *mutex) thread_in_trace = 1; retval = mutex_trylock(mutex); - tracepoint(ust_pthread, pthread_mutex_trylock, mutex, retval); + tracepoint(ust_pthread, pthread_mutex_trylock, mutex, retval, + __builtin_return_address(0)); thread_in_trace = 0; return retval; } @@ -100,7 +104,8 @@ int pthread_mutex_unlock(pthread_mutex_t *mutex) thread_in_trace = 1; retval = mutex_unlock(mutex); - tracepoint(ust_pthread, pthread_mutex_unlock, mutex, retval); + tracepoint(ust_pthread, pthread_mutex_unlock, mutex, retval, + __builtin_return_address(0)); thread_in_trace = 0; return retval; } diff --git a/liblttng-ust-libc-wrapper/ust_pthread.h b/liblttng-ust-libc-wrapper/ust_pthread.h index 7d35c3a0..42486773 100644 --- a/liblttng-ust-libc-wrapper/ust_pthread.h +++ b/liblttng-ust-libc-wrapper/ust_pthread.h @@ -33,14 +33,14 @@ extern "C" { #include TRACEPOINT_EVENT(ust_pthread, pthread_mutex_lock_req, - TP_ARGS(pthread_mutex_t *, mutex), + TP_ARGS(pthread_mutex_t *, mutex, void *, ip), TP_FIELDS( ctf_integer_hex(void *, mutex, mutex) ) ) TRACEPOINT_EVENT(ust_pthread, pthread_mutex_lock_acq, - TP_ARGS(pthread_mutex_t *, mutex, int, status), + TP_ARGS(pthread_mutex_t *, mutex, int, status, void *, ip), TP_FIELDS( ctf_integer_hex(void *, mutex, mutex) ctf_integer(int, status, status) @@ -48,7 +48,7 @@ TRACEPOINT_EVENT(ust_pthread, pthread_mutex_lock_acq, ) TRACEPOINT_EVENT(ust_pthread, pthread_mutex_trylock, - TP_ARGS(pthread_mutex_t *, mutex, int, status), + TP_ARGS(pthread_mutex_t *, mutex, int, status, void *, ip), TP_FIELDS( ctf_integer_hex(void *, mutex, mutex) ctf_integer(int, status, status) @@ -56,7 +56,7 @@ TRACEPOINT_EVENT(ust_pthread, pthread_mutex_trylock, ) TRACEPOINT_EVENT(ust_pthread, pthread_mutex_unlock, - TP_ARGS(pthread_mutex_t *, mutex, int, status), + TP_ARGS(pthread_mutex_t *, mutex, int, status, void *, ip), TP_FIELDS( ctf_integer_hex(void *, mutex, mutex) ctf_integer(int, status, status) -- 2.34.1