Use tracepoint definition files directly

This commit is contained in:
Christophe Bedard 2019-06-18 10:01:54 +02:00
parent 4cfd83809a
commit f728cd467b
5 changed files with 52 additions and 29 deletions

View file

@ -1,5 +0,0 @@
traces/
# generated files (LTTng)
tp_call.c
tp_call.h

View file

@ -19,15 +19,8 @@ if(WITH_LTTNG)
pkg_check_modules(LTTNG REQUIRED lttng-ust)
endif()
if(LTTNG_FOUND)
# Generate necessary LTTng files
# If successful, enable tracing
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/src/tp_call.c ${PROJECT_SOURCE_DIR}/include/tp_call.h
COMMAND lttng-gen-tp tp_call.tp -o tp_call.c -o ../include/tp_call.h
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/tp_call.tp
)
set(LTTNG_GENERATED
include/tp_call.h
set(LTTNG_TP_FILES
include/tracetools/tp_call.h
src/tp_call.c
)
set(TRACING_ENABLED TRUE)
@ -61,7 +54,7 @@ set(SOURCES
src/utils.cpp
)
if(TRACING_ENABLED)
list(APPEND SOURCES ${LTTNG_GENERATED})
list(APPEND SOURCES ${LTTNG_TP_FILES})
endif()
add_library(${PROJECT_NAME} ${SOURCES})

View file

@ -12,10 +12,21 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#undef TRACEPOINT_PROVIDER
#define TRACEPOINT_PROVIDER ros2
#undef TRACEPOINT_INCLUDE
#define TRACEPOINT_INCLUDE "tracetools/tp_call.h"
#if !defined(___INCLUDE_TP_CALL_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
#define ___INCLUDE_TP_CALL_H
#include <lttng/tracepoint.h>
#include <stdint.h>
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_init,
TP_ARGS(
const void *, context_handle_arg,
@ -28,7 +39,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_node_init,
TP_ARGS(
const void *, node_handle_arg,
@ -45,7 +56,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_publisher_init,
TP_ARGS(
const void *, publisher_handle_arg,
@ -64,7 +75,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_subscription_init,
TP_ARGS(
const void *, subscription_handle_arg,
@ -83,7 +94,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rclcpp_subscription_callback_added,
TP_ARGS(
const void *, subscription_handle_arg,
@ -96,7 +107,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_service_init,
TP_ARGS(
const void *, service_handle_arg,
@ -113,7 +124,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rclcpp_service_callback_added,
TP_ARGS(
const void *, service_handle_arg,
@ -126,7 +137,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_client_init,
TP_ARGS(
const void *, client_handle_arg,
@ -143,7 +154,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rcl_timer_init,
TP_ARGS(
const void *, timer_handle_arg,
@ -156,7 +167,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rclcpp_timer_callback_added,
TP_ARGS(
const void *, timer_handle_arg,
@ -169,7 +180,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
rclcpp_callback_register,
TP_ARGS(
const void *, callback_arg,
@ -182,7 +193,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
callback_start,
TP_ARGS(
const void *, callback_arg,
@ -195,7 +206,7 @@ TRACEPOINT_EVENT(
)
TRACEPOINT_EVENT(
ros2,
TRACEPOINT_PROVIDER,
callback_end,
TP_ARGS(
const void *, callback_arg
@ -204,3 +215,7 @@ TRACEPOINT_EVENT(
ctf_integer_hex(const void *, callback, callback_arg)
)
)
#endif /* ___INCLUDE_TP_CALL_H */
#include <lttng/tracepoint-event.h>

20
tracetools/src/tp_call.c Normal file
View file

@ -0,0 +1,20 @@
// Copyright 2019 Robert Bosch GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#define TRACEPOINT_CREATE_PROBES
/*
* The header containing our TRACEPOINT_EVENTs.
*/
#define TRACEPOINT_DEFINE
#include "tracetools/tp_call.h"

View file

@ -15,7 +15,7 @@
#include "tracetools/tracetools.h"
#if defined(WITH_LTTNG) && !defined(_WIN32)
# include "tp_call.h"
# include "tracetools/tp_call.h"
# define CONDITIONAL_TP(...) \
tracepoint(__VA_ARGS__)
#else