[lttng-dev] Unable to include files in tracepoint provider header files
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Tue Apr 28 14:27:08 EDT 2015
----- Original Message -----
> Hello,
> In the example (hello) provided, I tried to print complex data types instead
> of usual ints or floats. My header file looks like this.
> #undef TRACEPOINT_PROVIDER
> #define TRACEPOINT_PROVIDER hello_world
> #undef TRACEPOINT_INCLUDE
> #define TRACEPOINT_INCLUDE "./hello-tp.h"
> #if !defined(HELLO_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
> #define HELLO_TP_H
> #include <lttng/tracepoint.h>
> #include "myinc.h"
> TRACEPOINT_EVENT(
> hello_world,
> my_first_tracepoint,
> TP_ARGS(
> const char*, my_string_arg
> ),
> TP_FIELDS(
> ctf_integer(int, my_string_field, atoi(my_string_arg))
> )
> )
> My include file looks like this (myinc.h)
> typedef unsigned char uuid_t;
> However, when I try to compile it using, lttng-gen-tp, I am getting the
> following error.
> root at mvm236:~/heelo_prog# lttng-gen-tp hello-tp.tp
> In file included from ././hello-tp.h:13:0,
> from /usr/include/lttng/ust-tracepoint-event.h:740,
> from /usr/include/lttng/tracepoint-event.h:58,
> from hello-tp.h:56,
> from hello-tp.c:7:
> ././myinc.h:1:1: error: expected expression before ‘typedef’
> Whatever I try to include, I am getting this error.
> Can you please help.
Try adding include guards around your header myinc.h, e.g.:
#ifndef _MYINC_H
#define _MYINC_H
typedef unsigned char uuid_t;
#endif
It will ensure the header content does not get included multiple
times by ust-tracepoint-event.h.
Thanks,
Mathieu
> -- Chid
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20150428/4efcb353/attachment.html>
More information about the lttng-dev
mailing list