Add prospective callback register tracepoint

This commit is contained in:
Christophe Bedard 2019-05-28 14:16:38 +02:00
parent d36c3d824c
commit 3f13dd34d0
3 changed files with 41 additions and 0 deletions

View file

@ -152,6 +152,14 @@ void TRACEPOINT(
rclcpp_timer_callback_end, rclcpp_timer_callback_end,
const void * callback); const void * callback);
/**
* tp: rclcpp_callback_register
*/
void TRACEPOINT(
rclcpp_callback_register,
const void * handle,
const void * callback);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -219,3 +219,16 @@ TRACEPOINT_EVENT(
ctf_integer_hex(const void *, callback, callback_arg) ctf_integer_hex(const void *, callback, callback_arg)
) )
) )
TRACEPOINT_EVENT(
ros2,
rclcpp_callback_register,
TP_ARGS(
const void *, handle_arg,
const char *, callback_arg
),
TP_FIELDS(
ctf_integer_hex(const void *, handle, handle_arg)
ctf_string(callback, callback_arg)
)
)

View file

@ -1,3 +1,4 @@
#include <execinfo.h>
#include "tracetools/tracetools.h" #include "tracetools/tracetools.h"
#if defined(WITH_LTTNG) && !defined(_WIN32) #if defined(WITH_LTTNG) && !defined(_WIN32)
@ -9,6 +10,17 @@
#endif #endif
const char * get_symbol(const void * function_ptr) {
#if defined(WITH_LTTNG) && !defined(_WIN32)
char** symbols = backtrace_symbols(&function_ptr, 1);
const char * result = symbols[0];
free(symbols);
return result;
#else
return "";
#endif
}
bool ros_trace_compile_status() bool ros_trace_compile_status()
{ {
#if defined(WITH_LTTNG) && !defined(_WIN32) #if defined(WITH_LTTNG) && !defined(_WIN32)
@ -151,3 +163,11 @@ void TRACEPOINT(
{ {
CONDITIONAL_TP(ros2, rclcpp_timer_callback_end, callback); CONDITIONAL_TP(ros2, rclcpp_timer_callback_end, callback);
} }
void TRACEPOINT(
rclcpp_callback_register,
const void * handle,
const void * callback)
{
CONDITIONAL_TP(ros2, rclcpp_callback_register, handle, get_symbol(callback));
}