diff --git a/tracetools/include/tracetools/tracetools.h b/tracetools/include/tracetools/tracetools.h new file mode 100644 index 0000000..19c977f --- /dev/null +++ b/tracetools/include/tracetools/tracetools.h @@ -0,0 +1,30 @@ +#ifndef __TRACETOOLS_TRACETOOLS_H_ +#define __TRACETOOLS_TRACETOOLS_H_ + +#include +#include +#include + +#define TRACEPOINT(event_name, ...) \ + (ros_trace_##event_name)(__VA_ARGS__) + +#ifdef __cplusplus +extern "C" +{ +#endif + +/** + * Report whether tracing is compiled in + */ +bool ros_trace_compile_status(); + +/** + * tp: rcl_init + */ +void ros_trace_rcl_init(); + +#ifdef __cplusplus +} +#endif + +#endif /* __TRACETOOLS_TRACETOOLS_H_ */ diff --git a/tracetools/src/.gitignore b/tracetools/src/.gitignore new file mode 100644 index 0000000..2b36a18 --- /dev/null +++ b/tracetools/src/.gitignore @@ -0,0 +1,3 @@ +# generated files (LTTng) +tp_call.c +tp_call.h diff --git a/tracetools/src/status.c b/tracetools/src/status.c new file mode 100644 index 0000000..fc54ea0 --- /dev/null +++ b/tracetools/src/status.c @@ -0,0 +1,14 @@ +#include +#include "tracetools/tracetools.h" + +int main() +{ + printf("Tracing "); + if (ros_trace_compile_status()) { + printf("enabled\n"); + return 0; + } else { + printf("disabled\n"); + return 1; + } +} diff --git a/tracetools/src/tracetools.c b/tracetools/src/tracetools.c new file mode 100644 index 0000000..d3003b1 --- /dev/null +++ b/tracetools/src/tracetools.c @@ -0,0 +1,20 @@ +#include "tracetools/tracetools.h" + +#ifdef WITH_LTTNG +#include "tp_call.h" +#endif + + +bool ros_trace_compile_status() { +#ifdef WITH_LTTNG + return true; +#else + return false; +#endif +} + +void ros_trace_rcl_init() { +#ifdef WITH_LTTNG + tracepoint(ros2, rcl_init); +#endif +}