diff --git a/tracetools/include/tracetools/tracetools.h b/tracetools/include/tracetools/tracetools.h index 19c977f..fc4896e 100644 --- a/tracetools/include/tracetools/tracetools.h +++ b/tracetools/include/tracetools/tracetools.h @@ -23,6 +23,21 @@ bool ros_trace_compile_status(); */ void ros_trace_rcl_init(); +/** + * tp: rcl_node_init + */ +void ros_trace_rcl_node_init(const char * node_name, const char * namespace); + +/** + * tp: rcl_publisher_init + */ +void ros_trace_rcl_publisher_init(const char * node_name, const char * namespace); + +/** + * tp: rcl_subscription_init + */ +void ros_trace_rcl_subscription_init(const char * node_name, const char * topic_name); + #ifdef __cplusplus } #endif diff --git a/tracetools/lttng/tp_call.tp b/tracetools/lttng/tp_call.tp index 7260326..0d0aa4c 100644 --- a/tracetools/lttng/tp_call.tp +++ b/tracetools/lttng/tp_call.tp @@ -8,3 +8,42 @@ TRACEPOINT_EVENT( TP_FIELDS( ) ) + +TRACEPOINT_EVENT( + ros2, + rcl_node_init, + TP_ARGS( + const char*, node_name_arg, + const char*, namespace_arg + ), + TP_FIELDS( + ctf_string(node_name, node_name_arg) + ctf_string(namespace, namespace_arg) + ) +) + +TRACEPOINT_EVENT( + ros2, + rcl_publisher_init, + TP_ARGS( + const char*, node_name_arg, + const char*, namespace_arg + ), + TP_FIELDS( + ctf_string(node_name, node_name_arg) + ctf_string(namespace, namespace_arg) + ) +) + +TRACEPOINT_EVENT( + ros2, + rcl_subscription_init, + TP_ARGS( + const char*, node_name_arg, + const char*, topic_name_arg + ), + TP_FIELDS( + ctf_string(node_name, node_name_arg) + ctf_string(topic_name, topic_name_arg) + ) +) diff --git a/tracetools/scripts/setup-lttng.sh b/tracetools/scripts/setup-lttng.sh index e5b6c6a..24a6e17 100755 --- a/tracetools/scripts/setup-lttng.sh +++ b/tracetools/scripts/setup-lttng.sh @@ -2,7 +2,10 @@ # set up ust ros2 events for event in \ - ros2:rcl_init + ros2:rcl_init \ + ros2:rcl_node_init \ + ros2:rcl_publisher_init \ + ros2:rcl_subscription_init do lttng enable-event -c ros2 -u $event done diff --git a/tracetools/src/tracetools.c b/tracetools/src/tracetools.c index d3003b1..d9487b3 100644 --- a/tracetools/src/tracetools.c +++ b/tracetools/src/tracetools.c @@ -18,3 +18,21 @@ void ros_trace_rcl_init() { tracepoint(ros2, rcl_init); #endif } + +void ros_trace_rcl_node_init(const char * node_name, const char * namespace) { +#ifdef WITH_LTTNG + tracepoint(ros2, rcl_node_init, node_name, namespace); +#endif +} + +void ros_trace_rcl_publisher_init(const char * node_name, const char * namespace) { +#ifdef WITH_LTTNG + tracepoint(ros2, rcl_publisher_init, node_name, namespace); +#endif +} + +void ros_trace_rcl_subscription_init(const char * node_name, const char * topic_name) { +#ifdef WITH_LTTNG + tracepoint(ros2, rcl_subscription_init, node_name, topic_name); +#endif +}