Use macro for tracepoint functions

This commit is contained in:
Christophe Bedard 2019-05-17 14:57:36 +02:00
parent a595bb06bf
commit 922ba77f97
2 changed files with 66 additions and 40 deletions

View file

@ -21,42 +21,61 @@ bool ros_trace_compile_status();
/** /**
* tp: rcl_init * tp: rcl_init
*/ */
void ros_trace_rcl_init(); void TRACEPOINT(rcl_init);
/** /**
* tp: rcl_node_init * tp: rcl_node_init
*/ */
void ros_trace_rcl_node_init(const char * node_name, const char * node_namespace, const void * rmw_handle); void TRACEPOINT(
rcl_node_init,
const char * node_name,
const char * node_namespace,
const void * rmw_handle);
/** /**
* tp: rcl_publisher_init * tp: rcl_publisher_init
*/ */
void ros_trace_rcl_publisher_init(const char * node_name, const char * node_namespace); void TRACEPOINT(
rcl_publisher_init,
const char * node_name,
const char * node_namespace);
/** /**
* tp: rcl_subscription_init * tp: rcl_subscription_init
*/ */
void ros_trace_rcl_subscription_init(const char * node_name, const char * topic_name); void TRACEPOINT(
rcl_subscription_init,
const char * node_name,
const char * topic_name);
/** /**
* tp: rclcpp_subscription_callback_start * tp: rclcpp_subscription_callback_start
*/ */
void ros_trace_rclcpp_subscription_callback_start(const void * callback, const bool is_intra_process); void TRACEPOINT(
rclcpp_subscription_callback_start,
const void * callback,
const bool is_intra_process);
/** /**
* tp: rclcpp_subscription_callback_end * tp: rclcpp_subscription_callback_end
*/ */
void ros_trace_rclcpp_subscription_callback_end(const void * callback); void TRACEPOINT(
rclcpp_subscription_callback_end,
const void * callback);
/** /**
* tp: rclcpp_service_callback_start * tp: rclcpp_service_callback_start
*/ */
void ros_trace_rclcpp_service_callback_start(const void * callback); void TRACEPOINT(
rclcpp_service_callback_start,
const void * callback);
/** /**
* tp: rclcpp_service_callback_end * tp: rclcpp_service_callback_end
*/ */
void ros_trace_rclcpp_service_callback_end(const void * callback); void TRACEPOINT(
rclcpp_service_callback_end,
const void * callback);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -2,6 +2,10 @@
#ifdef WITH_LTTNG #ifdef WITH_LTTNG
#include "tp_call.h" #include "tp_call.h"
#define CONDITIONAL_TP(...) \
tracepoint(__VA_ARGS__);
#else
#define CONDITIONAL_TP(...)
#endif #endif
@ -14,58 +18,61 @@ bool ros_trace_compile_status()
#endif #endif
} }
void ros_trace_rcl_init() void TRACEPOINT(rcl_init)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rcl_init);
tracepoint(ros2, rcl_init);
#endif
} }
void ros_trace_rcl_node_init(const char * node_name, const char * node_namespace, const void * rmw_handle) void TRACEPOINT(
rcl_node_init,
const char * node_name,
const char * node_namespace,
const void * rmw_handle)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rcl_node_init, node_name, node_namespace, rmw_handle);
tracepoint(ros2, rcl_node_init, node_name, node_namespace, rmw_handle);
#endif
} }
void ros_trace_rcl_publisher_init(const char * node_name, const char * node_namespace) void TRACEPOINT(
rcl_publisher_init,
const char * node_name,
const char * node_namespace)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rcl_publisher_init, node_name, node_namespace);
tracepoint(ros2, rcl_publisher_init, node_name, node_namespace);
#endif
} }
void ros_trace_rcl_subscription_init(const char * node_name, const char * topic_name) void TRACEPOINT(
rcl_subscription_init,
const char * node_name,
const char * topic_name)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rcl_subscription_init, node_name, topic_name);
tracepoint(ros2, rcl_subscription_init, node_name, topic_name);
#endif
} }
void ros_trace_rclcpp_subscription_callback_start(const void * callback, const bool is_intra_process) void TRACEPOINT(
rclcpp_subscription_callback_start,
const void * callback,
const bool is_intra_process)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rclcpp_subscription_callback_start, callback, (is_intra_process ? 1 : 0));
tracepoint(ros2, rclcpp_subscription_callback_start, callback, (is_intra_process ? 1 : 0));
#endif
} }
void ros_trace_rclcpp_subscription_callback_end(const void * callback) void TRACEPOINT(
rclcpp_subscription_callback_end,
const void * callback)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rclcpp_subscription_callback_end, callback);
tracepoint(ros2, rclcpp_subscription_callback_end, callback);
#endif
} }
void ros_trace_rclcpp_service_callback_start(const void * callback) void TRACEPOINT(
rclcpp_service_callback_start,
const void * callback)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rclcpp_service_callback_start, callback);
tracepoint(ros2, rclcpp_service_callback_start, callback);
#endif
} }
void ros_trace_rclcpp_service_callback_end(const void * callback) void TRACEPOINT(
rclcpp_service_callback_end,
const void * callback)
{ {
#ifdef WITH_LTTNG CONDITIONAL_TP(ros2, rclcpp_service_callback_end, callback);
tracepoint(ros2, rclcpp_service_callback_end, callback);
#endif
} }