redondant -> redundant * Jérémie Galarneau ([email protected]) wrote: > The examples are now automatically built as part of the default make target. > > The "hello" test verified that an application with statically embedded > tracepoint providers could be built. This is now covered by "easy-ust" in > doc/examples since we now build the examples.
No, hello is referenced by lttng-ust(3) manpage. Please leave it there, but move it to examples. Thanks, Mathieu > > Move the "hello-static-lib" test to doc/examples. > > This should provide complete and easy to understand Makefile examples to users > who wish to integrate tracepoint providers to their applications. > > Signed-off-by: Jérémie Galarneau <[email protected]> > --- > .gitignore | 6 +- > README | 2 +- > configure.ac | 2 - > doc/examples/Makefile.am | 15 ++++ > doc/examples/README | 3 + > doc/examples/demo/Makefile | 27 +++++-- > doc/examples/easy-ust/Makefile | 30 ++++++-- > doc/examples/hello-static-lib/Makefile | 53 ++++++++++++++ > doc/examples/hello-static-lib/README | 3 + > doc/examples/hello-static-lib/hello.c | 94 ++++++++++++++++++++++++ > doc/examples/hello-static-lib/tp.c | 26 +++++++ > doc/examples/hello-static-lib/ust_tests_hello.h | 72 ++++++++++++++++++ > doc/man/lttng-ust.3 | 62 ++++++++-------- > tests/Makefile.am | 2 +- > tests/hello-static-lib/Makefile.am | 18 ----- > tests/hello-static-lib/README | 3 - > tests/hello-static-lib/hello.c | 95 ------------------------ > tests/hello-static-lib/tp.c | 26 ------- > tests/hello-static-lib/ust_tests_hello.h | 72 ------------------ > tests/hello/Makefile.am | 13 ---- > tests/hello/Makefile.example.bsd | 8 -- > tests/hello/Makefile.example.linux | 8 -- > tests/hello/README | 2 - > tests/hello/hello.c | 97 > ------------------------- > tests/hello/tp.c | 26 ------- > tests/hello/ust_tests_hello.h | 76 ------------------- > 26 files changed, 349 insertions(+), 492 deletions(-) > create mode 100644 doc/examples/README > create mode 100644 doc/examples/hello-static-lib/Makefile > create mode 100644 doc/examples/hello-static-lib/README > create mode 100644 doc/examples/hello-static-lib/hello.c > create mode 100644 doc/examples/hello-static-lib/tp.c > create mode 100644 doc/examples/hello-static-lib/ust_tests_hello.h > delete mode 100644 tests/hello-static-lib/Makefile.am > delete mode 100644 tests/hello-static-lib/README > delete mode 100644 tests/hello-static-lib/hello.c > delete mode 100644 tests/hello-static-lib/tp.c > delete mode 100644 tests/hello-static-lib/ust_tests_hello.h > delete mode 100644 tests/hello/Makefile.am > delete mode 100644 tests/hello/Makefile.example.bsd > delete mode 100644 tests/hello/Makefile.example.linux > delete mode 100644 tests/hello/README > delete mode 100644 tests/hello/hello.c > delete mode 100644 tests/hello/tp.c > delete mode 100644 tests/hello/ust_tests_hello.h > > diff --git a/.gitignore b/.gitignore > index 1065aa3..e118025 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -31,7 +31,10 @@ lttng-ust.pc > ustctl/ustctl > ust-consumerd/ust-consumerd > > -tests/hello/hello > +doc/examples/demo/demo > +doc/examples/easy-ust/sample > +doc/examples/hello-static-lib/hello > + > tests/hello.cxx/hello > tests/same_line_tracepoint/same_line_tracepoint > tests/ust-basic-tracing/ust-basic-tracing > @@ -39,5 +42,4 @@ tests/ust-multi-test/ust-multi-test > tests/trace_event/trace_event_test > tests/tracepoint/benchmark/tracepoint_benchmark > tests/tracepoint/tracepoint_test > -tests/hello-static-lib/hello > tests/snprintf/prog > diff --git a/README b/README > index 30ccb34..dadcd1f 100644 > --- a/README > +++ b/README > @@ -72,7 +72,7 @@ USAGE: > - If building the provider directly into the application, > link the application with "-llttng-ust". > - If building a static library for the provider, link the static > - library with "-lllttng-ust". > + library with "-llttng-ust". > - Include the tracepoint provider header into all C files using > the provider. > - Example: > diff --git a/configure.ac b/configure.ac > index e54cfea..be392cf 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -265,8 +265,6 @@ AC_CONFIG_FILES([ > liblttng-ust-cyg-profile/Makefile > tools/Makefile > tests/Makefile > - tests/hello/Makefile > - tests/hello-static-lib/Makefile > tests/hello.cxx/Makefile > tests/same_line_tracepoint/Makefile > tests/snprintf/Makefile > diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am > index 2dc042a..e9dd170 100644 > --- a/doc/examples/Makefile.am > +++ b/doc/examples/Makefile.am > @@ -1,6 +1,12 @@ > +SUBDIRS = easy-ust demo hello-static-lib > + > +doc_examplesdir = ${docdir}/examples > doc_examples_easy_ustdir = ${docdir}/examples/easy-ust > doc_examples_gen_tpdir = ${docdir}/examples/gen-tp > doc_examples_demodir = ${docdir}/examples/demo > +doc_examples_hello_static_libdir = ${docdir}/examples/hello-static-lib > + > +dist_doc_examples_DATA = README > > dist_doc_examples_easy_ust_DATA = easy-ust/Makefile \ > easy-ust/sample.c \ > @@ -19,3 +25,12 @@ dist_doc_examples_demo_DATA = demo/demo.c \ > demo/ust_tests_demo2.h \ > demo/ust_tests_demo3.h \ > demo/ust_tests_demo.h > + > +dist_doc_examples_hello_static_lib_DATA = hello-static-lib/Makefile \ > + hello-static-lib/hello.c \ > + hello-static-lib/README \ > + hello-static-lib/ust_tests_hello.h \ > + hello-static-lib/tp.c > + > +BUILD_EXAMPLES_FROM_TREE = 1 > +export > diff --git a/doc/examples/README b/doc/examples/README > new file mode 100644 > index 0000000..e9ed352 > --- /dev/null > +++ b/doc/examples/README > @@ -0,0 +1,3 @@ > +To build the examples from the source tree, the BUILD_EXAMPLES_FROM_TREE > +environment variable must be defined. This will force the examples' > +Makefiles to use the source tree's public header files and libraries. > diff --git a/doc/examples/demo/Makefile b/doc/examples/demo/Makefile > index 41f4321..0c829da 100644 > --- a/doc/examples/demo/Makefile > +++ b/doc/examples/demo/Makefile > @@ -9,13 +9,30 @@ > # granted, provided the above notices are retained, and a notice that > # the code was modified is included with the above copyright notice. > > -# This Makefile is not using automake so that people may see how to build > -# a program and tracepoint provider probes as stand-alone shared objects. > +# This Makefile is not using automake so that users may see how to build > +# a program with tracepoint provider probes as stand-alone shared objects. > > CC = gcc > LIBS = -ldl # On Linux > #LIBS = -lc # On BSD > -CFLAGS = -I. > +CFLAGS += -I. > + > +# Only necessary when building from the source tree and lttng-ust is not > +# installed > +ifdef BUILD_EXAMPLES_FROM_TREE > +CFLAGS += -I../../../include/ > +LIBLTTNG_UST_PATH = ../../../liblttng-ust/.libs/ > +LDFLAGS += -L$(LIBLTTNG_UST_PATH) -Wl,-rpath='$$ORIGIN/$(LIBLTTNG_UST_PATH)' > + > +# Third-party Makefiles have to define these targets to integrate with an > +# automake project > +EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall > \ > + install-dvi install-html install-info install-ps install-pdf \ > + installdirs check installcheck mostlyclean distclean maintainer-clean \ > + dvi html pdf ps info tags ctags > +.PHONY: $(EMPTY_AUTOMAKE_TARGETS) > +$(EMPTY_AUTOMAKE_TARGETS): > +endif > > all: demo lttng-ust-provider-ust-tests-demo.so > lttng-ust-provider-ust-tests-demo3.so > > @@ -23,13 +40,13 @@ lttng-ust-provider-ust-tests-demo.o: tp.c tp2.c > ust_tests_demo.h ust_tests_demo2 > $(CC) $(CFLAGS) -fpic -c -o $@ $< > > lttng-ust-provider-ust-tests-demo.so: lttng-ust-provider-ust-tests-demo.o > - $(CC) -shared -o $@ -llttng-ust $< > + $(CC) -shared -o $@ $(LDFLAGS) -llttng-ust $< > > lttng-ust-provider-ust-tests-demo3.o: tp3.c ust_tests_demo3.h > $(CC) $(CFLAGS) -fpic -c -o $@ $< > > lttng-ust-provider-ust-tests-demo3.so: lttng-ust-provider-ust-tests-demo3.o > - $(CC) -shared -o $@ -llttng-ust $< > + $(CC) -shared -o $@ $(LDFLAGS) -llttng-ust $< > > demo.o: demo.c > $(CC) $(CFLAGS) -c -o $@ $< > diff --git a/doc/examples/easy-ust/Makefile b/doc/examples/easy-ust/Makefile > index 1e3c941..304632b 100644 > --- a/doc/examples/easy-ust/Makefile > +++ b/doc/examples/easy-ust/Makefile > @@ -10,20 +10,36 @@ > # granted, provided the above notices are retained, and a notice that > # the code was modified is included with the above copyright notice. > > -# This makefile is not using automake so that people can see how to make > -# simply. It builds a program with a statically embedded tracepoint > -# provider probe. > +# This makefile is not using automake so that users can see how to build > +# a program with a statically embedded tracepoint provider probe. > # the "html" target helps for documentation (req. code2html) > > CC = gcc > LIBS = -ldl -llttng-ust # On Linux > #LIBS = -lc -llttng-ust # On BSD > -CFLAGS = -I. > +CFLAGS += -I. > + > +# Only necessary when building from the source tree and lttng-ust is not > +# installed > +ifdef BUILD_EXAMPLES_FROM_TREE > +CFLAGS += -I../../../include/ > +LIBLTTNG_UST_PATH = ../../../liblttng-ust/.libs/ > +LDFLAGS += -L$(LIBLTTNG_UST_PATH) -Wl,-rpath='$$ORIGIN/$(LIBLTTNG_UST_PATH)' > + > +# Third-party Makefiles have to define these targets to integrate with an > +# automake project > +EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall > \ > + install-dvi install-html install-info install-ps install-pdf \ > + installdirs check installcheck mostlyclean distclean maintainer-clean \ > + dvi pdf ps info tags ctags > +.PHONY: $(EMPTY_AUTOMAKE_TARGETS) > +$(EMPTY_AUTOMAKE_TARGETS): > +endif > > all: sample > > sample: sample.o tp.o > - $(CC) -o $@ $^ $(LIBS) > + $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) > > sample.o: sample.c sample_component_provider.h > $(CC) $(CFLAGS) -c -o $@ $< > @@ -33,7 +49,7 @@ tp.o: tp.c sample_component_provider.h > > html: sample_component_provider.html sample.html tp.html > > -%.html: %.c > +%.html: %.c > code2html -lc $< $@ > > %.html : %.h > @@ -41,5 +57,5 @@ html: sample_component_provider.html sample.html tp.html > > .PHONY: clean > clean: > - rm -f *.html > + rm -f *.html > rm -f *.o sample > diff --git a/doc/examples/hello-static-lib/Makefile > b/doc/examples/hello-static-lib/Makefile > new file mode 100644 > index 0000000..c18fd3f > --- /dev/null > +++ b/doc/examples/hello-static-lib/Makefile > @@ -0,0 +1,53 @@ > +# Copyright (C) 2013 Jérémie Galarneau <[email protected]> > +# > +# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED > +# OR IMPLIED. ANY USE IS AT YOUR OWN RISK. > +# > +# Permission is hereby granted to use or copy this program for any > +# purpose, provided the above notices are retained on all copies. > +# Permission to modify the code and to distribute modified code is > +# granted, provided the above notices are retained, and a notice that > +# the code was modified is included with the above copyright notice. > + > +# This Makefile is not using automake so that users may see how to build > +# a program with tracepoint provider probes in static libraries. > + > +CC = gcc > +CFLAGS += -I. > +LIBS = -ldl -llttng-ust # On Linux > +#LIBS = -lc -llttng-ust # On BSD > + > +# Only necessary when building from the source tree and lttng-ust is not > +# installed > +ifdef BUILD_EXAMPLES_FROM_TREE > +CFLAGS += -I../../../include/ > +LIBLTTNG_UST_PATH = ../../../liblttng-ust/.libs/ > +LDFLAGS += -L$(LIBLTTNG_UST_PATH) -Wl,-rpath='$$ORIGIN/$(LIBLTTNG_UST_PATH)' > + > +# Third-party Makefiles have to define these targets to integrate with an > +# automake project > +EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall > \ > + install-dvi install-html install-info install-ps install-pdf \ > + installdirs check installcheck mostlyclean distclean maintainer-clean \ > + dvi html pdf ps info tags ctags > +.PHONY: $(EMPTY_AUTOMAKE_TARGETS) > +$(EMPTY_AUTOMAKE_TARGETS): > +endif > + > +all: hello > + > +lttng-ust-provider-hello.o: tp.c ust_tests_hello.h > + $(CC) $(CFLAGS) -c -o $@ $< > + > +lttng-ust-provider-hello.a: lttng-ust-provider-hello.o > + ar -rc $@ $< > + > +hello.o: hello.c > + $(CC) $(CFLAGS) -c -o $@ $< > + > +hello: hello.o lttng-ust-provider-hello.a > + $(CC) -o $@ $(LDFLAGS) $(LIBS) $^ > + > +.PHONY: clean > +clean: > + rm -f *.o *.a hello > diff --git a/doc/examples/hello-static-lib/README > b/doc/examples/hello-static-lib/README > new file mode 100644 > index 0000000..abb056f > --- /dev/null > +++ b/doc/examples/hello-static-lib/README > @@ -0,0 +1,3 @@ > +This is a "hello world" application used to verify that an instrumented > +program can be built successfully and linked with tracepoint providers > +built as a separate static library. > diff --git a/doc/examples/hello-static-lib/hello.c > b/doc/examples/hello-static-lib/hello.c > new file mode 100644 > index 0000000..693709d > --- /dev/null > +++ b/doc/examples/hello-static-lib/hello.c > @@ -0,0 +1,94 @@ > +/* > + * Copyright (C) 2009 Pierre-Marc Fournier > + * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> > + * > + * This library is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; version 2.1 of > + * the License. > + * > + * This library is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this library; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > + */ > + > +#include <stdio.h> > +#include <unistd.h> > +#include <sys/mman.h> > +#include <stdarg.h> > +#include <sys/types.h> > +#include <sys/stat.h> > +#include <fcntl.h> > +#include <signal.h> > +#include <string.h> > +#include <arpa/inet.h> > +#include <stdlib.h> > + > +#define TRACEPOINT_DEFINE > +#include "ust_tests_hello.h" > + > +void inthandler(int sig) > +{ > + printf("in SIGUSR1 handler\n"); > + tracepoint(ust_tests_hello, tptest_sighandler); > +} > + > +int init_int_handler(void) > +{ > + int result; > + struct sigaction act; > + > + memset(&act, 0, sizeof(act)); > + result = sigemptyset(&act.sa_mask); > + if (result == -1) { > + perror("sigemptyset"); > + return -1; > + } > + > + act.sa_handler = inthandler; > + act.sa_flags = SA_RESTART; > + > + /* Only defer ourselves. Also, try to restart interrupted > + * syscalls to disturb the traced program as little as possible. > + */ > + result = sigaction(SIGUSR1, &act, NULL); > + if (result == -1) { > + perror("sigaction"); > + return -1; > + } > + > + return 0; > +} > + > +int main(int argc, char **argv) > +{ > + int i, netint; > + long values[] = { 1, 2, 3 }; > + char text[10] = "test"; > + double dbl = 2.0; > + float flt = 2222.0; > + int delay = 0; > + > + init_int_handler(); > + > + if (argc == 2) > + delay = atoi(argv[1]); > + > + fprintf(stderr, "Hello, World!\n"); > + > + sleep(delay); > + > + fprintf(stderr, "Tracing... "); > + for (i = 0; i < 1000000; i++) { > + netint = htonl(i); > + tracepoint(ust_tests_hello, tptest, i, netint, values, > + text, strlen(text), dbl, flt); > + } > + fprintf(stderr, " done.\n"); > + return 0; > +} > diff --git a/doc/examples/hello-static-lib/tp.c > b/doc/examples/hello-static-lib/tp.c > new file mode 100644 > index 0000000..4790965 > --- /dev/null > +++ b/doc/examples/hello-static-lib/tp.c > @@ -0,0 +1,26 @@ > +/* > + * tp.c > + * > + * Copyright (c) 2011 Mathieu Desnoyers <[email protected]> > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > + * of this software and associated documentation files (the "Software"), to > deal > + * in the Software without restriction, including without limitation the > rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > + * SOFTWARE. > + */ > + > +#define TRACEPOINT_CREATE_PROBES > +#include "ust_tests_hello.h" > diff --git a/doc/examples/hello-static-lib/ust_tests_hello.h > b/doc/examples/hello-static-lib/ust_tests_hello.h > new file mode 100644 > index 0000000..35ea5f5 > --- /dev/null > +++ b/doc/examples/hello-static-lib/ust_tests_hello.h > @@ -0,0 +1,72 @@ > +#undef TRACEPOINT_PROVIDER > +#define TRACEPOINT_PROVIDER ust_tests_hello > + > +#if !defined(_TRACEPOINT_UST_TESTS_HELLO_H) || > defined(TRACEPOINT_HEADER_MULTI_READ) > +#define _TRACEPOINT_UST_TESTS_HELLO_H > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > + * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > + * of this software and associated documentation files (the "Software"), to > deal > + * in the Software without restriction, including without limitation the > rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > + * SOFTWARE. > + */ > + > +#include <lttng/tracepoint.h> > + > +TRACEPOINT_EVENT(ust_tests_hello, tptest, > + TP_ARGS(int, anint, int, netint, long *, values, > + char *, text, size_t, textlen, > + double, doublearg, float, floatarg), > + TP_FIELDS( > + ctf_integer(int, intfield, anint) > + ctf_integer_hex(int, intfield2, anint) > + ctf_integer(long, longfield, anint) > + ctf_integer_network(int, netintfield, netint) > + ctf_integer_network_hex(int, netintfieldhex, netint) > + ctf_array(long, arrfield1, values, 3) > + ctf_array_text(char, arrfield2, text, 10) > + ctf_sequence(char, seqfield1, text, > + size_t, textlen) > + ctf_sequence_text(char, seqfield2, text, > + size_t, textlen) > + ctf_string(stringfield, text) > + ctf_float(float, floatfield, floatarg) > + ctf_float(double, doublefield, doublearg) > + ) > +) > + > +TRACEPOINT_EVENT(ust_tests_hello, tptest_sighandler, > + TP_ARGS(), > + TP_FIELDS() > +) > + > +#endif /* _TRACEPOINT_UST_TESTS_HELLO_H */ > + > +#undef TRACEPOINT_INCLUDE > +#define TRACEPOINT_INCLUDE "./ust_tests_hello.h" > + > +/* This part must be outside ifdef protection */ > +#include <lttng/tracepoint-event.h> > + > +#ifdef __cplusplus > +} > +#endif > diff --git a/doc/man/lttng-ust.3 b/doc/man/lttng-ust.3 > index 5be3cfa..585d133 100644 > --- a/doc/man/lttng-ust.3 > +++ b/doc/man/lttng-ust.3 > @@ -40,11 +40,11 @@ focus on the various types that can be recorded into a > trace event: > TRACEPOINT_EVENT( > /* > * provider name, not a variable but a string starting with a > - * letter and containing either letters, numbers or underscores. > + * letter and containing either letters, numbers or underscores. > * Needs to be the same as TRACEPOINT_PROVIDER. Needs to > * follow the namespacing guide-lines in lttng/tracepoint.h: > - * > - * Must be included before include tracepoint provider > + * > + * Must be included before include tracepoint provider > * ex.: project_event > * ex.: project_component_event > * > @@ -59,19 +59,19 @@ TRACEPOINT_EVENT( > /* > * tracepoint name, same format as sample provider. Does not > * need to be declared before. in this case the name is > - * "message" > + * "message" > */ > message, > > /* > - * TP_ARGS macro contains the arguments passed for the tracepoint > + * TP_ARGS macro contains the arguments passed for the tracepoint > * it is in the following format > * TP_ARGS(type1, name1, type2, name2, ... type10, > name10) > - * where there can be from zero to ten elements. > - * typeN is the datatype, such as int, struct or double **. > + * where there can be from zero to ten elements. > + * typeN is the datatype, such as int, struct or double **. > * name is the variable name (in "int myInt" the name would be > - * myint) > + * myint) > * TP_ARGS() is valid to mean no arguments > * TP_ARGS(void) is valid too > */ > @@ -80,7 +80,7 @@ TRACEPOINT_EVENT( > double, doublearg, float, floatarg), > > /* > - * TP_FIELDS describes how to write the fields of the trace event. > + * TP_FIELDS describes how to write the fields of the trace event. > * You can put expressions in the "argument expression" area, > * typically using the input arguments from TP_ARGS. > */ > @@ -109,14 +109,14 @@ TRACEPOINT_EVENT( > /* > * ctf_array: a statically-sized array. > * args: (type, field name, argument expression, value) > - */ > + */ > ctf_array(long, arrfield1, values, 3) > > /* > * ctf_array_text: a statically-sized array, printed as > * a string. No need to be terminated by a null > * character. > - */ > + */ > ctf_array_text(char, arrfield2, text, 10) > > /* > @@ -127,7 +127,7 @@ TRACEPOINT_EVENT( > * unsigned type. As a reminder, "unsigned char" should > * be preferred to "char", since the signedness of > * "char" is implementation-defined. > - */ > + */ > ctf_sequence(char, seqfield1, text, > size_t, textlen) > > @@ -172,54 +172,54 @@ declared before declaring a TRACEPOINT_LOGLEVEL. > > The loglevels go from 0 to 14. Higher numbers imply the most verbosity > (higher event throughput expected. > - > + > Loglevels 0 through 6, and loglevel 14, match syslog(3) loglevels > semantic. Loglevels 7 through 13 offer more fine-grained selection of > debug information. > - > + > TRACE_EMERG 0 > system is unusable > - > + > TRACE_ALERT 1 > action must be taken immediately > - > + > TRACE_CRIT 2 > critical conditions > - > + > TRACE_ERR 3 > error conditions > - > + > TRACE_WARNING 4 > warning conditions > - > + > TRACE_NOTICE 5 > normal, but significant, condition > - > + > TRACE_INFO 6 > informational message > - > + > TRACE_DEBUG_SYSTEM 7 > debug information with system-level scope (set of programs) > - > + > TRACE_DEBUG_PROGRAM 8 > debug information with program-level scope (set of processes) > - > + > TRACE_DEBUG_PROCESS 9 > debug information with process-level scope (set of modules) > - > + > TRACE_DEBUG_MODULE 10 > debug information with module (executable/library) scope (set of > units) > - > + > TRACE_DEBUG_UNIT 11 > debug information with compilation unit scope (set of functions) > - > + > TRACE_DEBUG_FUNCTION 12 > debug information with function-level scope > - > + > TRACE_DEBUG_LINE 13 > debug information with line-level scope (TRACEPOINT_EVENT default) > - > + > TRACE_DEBUG 14 > debug-level message (trace_printf default) > > @@ -269,7 +269,9 @@ carefully: > - Include the tracepoint provider header into all C files using > the provider. > - Example: > - - tests/hello/ hello.c tp.c ust_tests_hello.h Makefile.example > + - doc/examples/easy-ust/ sample.c sample_component_provider.h tp.c > + Makefile > + - doc/examples/hello-static-lib/ hello.c tp.c ust_test_hello.h > Makefile > > 2) Compile the Tracepoint Provider separately from the application, > using dynamic linking: > @@ -287,7 +289,7 @@ carefully: > needed. Another way is to dlopen the tracepoint probe when needed > by the application. > - Example: > - - doc/examples/demo demo.c tp*.c ust_tests_demo*.h demo-trace > + - doc/examples/demo demo.c tp*.c ust_tests_demo*.h demo-trace > Makefile > > - Note about dlclose() usage: it is not safe to use dlclose on a > provider shared object that is being actively used for tracing due > diff --git a/tests/Makefile.am b/tests/Makefile.am > index 425440a..8c971e3 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -1,4 +1,4 @@ > -SUBDIRS = . hello hello-static-lib same_line_tracepoint snprintf > +SUBDIRS = . same_line_tracepoint snprintf > > if CXX_WORKS > SUBDIRS += hello.cxx > diff --git a/tests/hello-static-lib/Makefile.am > b/tests/hello-static-lib/Makefile.am > deleted file mode 100644 > index 699845b..0000000 > --- a/tests/hello-static-lib/Makefile.am > +++ /dev/null > @@ -1,18 +0,0 @@ > -AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include > -Wsystem-headers > - > -noinst_LTLIBRARIES = liblttng-ust-provider-ust-test-hello.la > -liblttng_ust_provider_ust_test_hello_la_SOURCES = \ > - tp.c ust_tests_hello.h > -liblttng_ust_provider_ust_test_hello_la_LIBADD = \ > - $(top_builddir)/liblttng-ust/liblttng-ust.la > - > -noinst_PROGRAMS = hello > -hello_SOURCES = hello.c > -hello_LDADD = liblttng-ust-provider-ust-test-hello.la > - > -if LTTNG_UST_BUILD_WITH_LIBDL > -hello_LDADD += -ldl > -endif > -if LTTNG_UST_BUILD_WITH_LIBC_DL > -hello_LDADD += -lc > -endif > diff --git a/tests/hello-static-lib/README b/tests/hello-static-lib/README > deleted file mode 100644 > index abb056f..0000000 > --- a/tests/hello-static-lib/README > +++ /dev/null > @@ -1,3 +0,0 @@ > -This is a "hello world" application used to verify that an instrumented > -program can be built successfully and linked with tracepoint providers > -built as a separate static library. > diff --git a/tests/hello-static-lib/hello.c b/tests/hello-static-lib/hello.c > deleted file mode 100644 > index 584d3f7..0000000 > --- a/tests/hello-static-lib/hello.c > +++ /dev/null > @@ -1,95 +0,0 @@ > -/* > - * Copyright (C) 2009 Pierre-Marc Fournier > - * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> > - * > - * This library is free software; you can redistribute it and/or > - * modify it under the terms of the GNU Lesser General Public > - * License as published by the Free Software Foundation; version 2.1 of > - * the License. > - * > - * This library is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > - * Lesser General Public License for more details. > - * > - * You should have received a copy of the GNU Lesser General Public > - * License along with this library; if not, write to the Free Software > - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > - */ > - > -#include <stdio.h> > -#include <unistd.h> > -#include <sys/mman.h> > -#include <stdarg.h> > -#include <sys/types.h> > -#include <sys/stat.h> > -#include <fcntl.h> > -#include <signal.h> > -#include <string.h> > -#include <arpa/inet.h> > -#include <stdlib.h> > - > -#define TRACEPOINT_DEFINE > -#include "ust_tests_hello.h" > - > -void inthandler(int sig) > -{ > - printf("in SIGUSR1 handler\n"); > - tracepoint(ust_tests_hello, tptest_sighandler); > -} > - > -int init_int_handler(void) > -{ > - int result; > - struct sigaction act; > - > - memset(&act, 0, sizeof(act)); > - result = sigemptyset(&act.sa_mask); > - if (result == -1) { > - perror("sigemptyset"); > - return -1; > - } > - > - act.sa_handler = inthandler; > - act.sa_flags = SA_RESTART; > - > - /* Only defer ourselves. Also, try to restart interrupted > - * syscalls to disturb the traced program as little as possible. > - */ > - result = sigaction(SIGUSR1, &act, NULL); > - if (result == -1) { > - perror("sigaction"); > - return -1; > - } > - > - return 0; > -} > - > -int main(int argc, char **argv) > -{ > - int i, netint; > - long values[] = { 1, 2, 3 }; > - char text[10] = "test"; > - double dbl = 2.0; > - float flt = 2222.0; > - int delay = 0; > - > - init_int_handler(); > - > - if (argc == 2) > - delay = atoi(argv[1]); > - > - fprintf(stderr, "Hello, World!\n"); > - > - sleep(delay); > - > - fprintf(stderr, "Tracing... "); > - for (i = 0; i < 1000000; i++) { > - netint = htonl(i); > - tracepoint(ust_tests_hello, tptest, i, netint, values, > - text, strlen(text), dbl, flt); > - //usleep(100000); > - } > - fprintf(stderr, " done.\n"); > - return 0; > -} > diff --git a/tests/hello-static-lib/tp.c b/tests/hello-static-lib/tp.c > deleted file mode 100644 > index 4790965..0000000 > --- a/tests/hello-static-lib/tp.c > +++ /dev/null > @@ -1,26 +0,0 @@ > -/* > - * tp.c > - * > - * Copyright (c) 2011 Mathieu Desnoyers <[email protected]> > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > copy > - * of this software and associated documentation files (the "Software"), to > deal > - * in the Software without restriction, including without limitation the > rights > - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > - * copies of the Software, and to permit persons to whom the Software is > - * furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice shall be included in > - * all copies or substantial portions of the Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > - * SOFTWARE. > - */ > - > -#define TRACEPOINT_CREATE_PROBES > -#include "ust_tests_hello.h" > diff --git a/tests/hello-static-lib/ust_tests_hello.h > b/tests/hello-static-lib/ust_tests_hello.h > deleted file mode 100644 > index 35ea5f5..0000000 > --- a/tests/hello-static-lib/ust_tests_hello.h > +++ /dev/null > @@ -1,72 +0,0 @@ > -#undef TRACEPOINT_PROVIDER > -#define TRACEPOINT_PROVIDER ust_tests_hello > - > -#if !defined(_TRACEPOINT_UST_TESTS_HELLO_H) || > defined(TRACEPOINT_HEADER_MULTI_READ) > -#define _TRACEPOINT_UST_TESTS_HELLO_H > - > -#ifdef __cplusplus > -extern "C" { > -#endif > - > -/* > - * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > copy > - * of this software and associated documentation files (the "Software"), to > deal > - * in the Software without restriction, including without limitation the > rights > - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > - * copies of the Software, and to permit persons to whom the Software is > - * furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice shall be included in > - * all copies or substantial portions of the Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > - * SOFTWARE. > - */ > - > -#include <lttng/tracepoint.h> > - > -TRACEPOINT_EVENT(ust_tests_hello, tptest, > - TP_ARGS(int, anint, int, netint, long *, values, > - char *, text, size_t, textlen, > - double, doublearg, float, floatarg), > - TP_FIELDS( > - ctf_integer(int, intfield, anint) > - ctf_integer_hex(int, intfield2, anint) > - ctf_integer(long, longfield, anint) > - ctf_integer_network(int, netintfield, netint) > - ctf_integer_network_hex(int, netintfieldhex, netint) > - ctf_array(long, arrfield1, values, 3) > - ctf_array_text(char, arrfield2, text, 10) > - ctf_sequence(char, seqfield1, text, > - size_t, textlen) > - ctf_sequence_text(char, seqfield2, text, > - size_t, textlen) > - ctf_string(stringfield, text) > - ctf_float(float, floatfield, floatarg) > - ctf_float(double, doublefield, doublearg) > - ) > -) > - > -TRACEPOINT_EVENT(ust_tests_hello, tptest_sighandler, > - TP_ARGS(), > - TP_FIELDS() > -) > - > -#endif /* _TRACEPOINT_UST_TESTS_HELLO_H */ > - > -#undef TRACEPOINT_INCLUDE > -#define TRACEPOINT_INCLUDE "./ust_tests_hello.h" > - > -/* This part must be outside ifdef protection */ > -#include <lttng/tracepoint-event.h> > - > -#ifdef __cplusplus > -} > -#endif > diff --git a/tests/hello/Makefile.am b/tests/hello/Makefile.am > deleted file mode 100644 > index 324c2cd..0000000 > --- a/tests/hello/Makefile.am > +++ /dev/null > @@ -1,13 +0,0 @@ > -AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include > -Wsystem-headers > - > -noinst_PROGRAMS = hello > -hello_SOURCES = hello.c tp.c ust_tests_hello.h > -hello_LDADD = $(top_builddir)/liblttng-ust/liblttng-ust.la > -hello_CFLAGS = -Werror=old-style-definition > - > -if LTTNG_UST_BUILD_WITH_LIBDL > -hello_LDADD += -ldl > -endif > -if LTTNG_UST_BUILD_WITH_LIBC_DL > -hello_LDADD += -lc > -endif > diff --git a/tests/hello/Makefile.example.bsd > b/tests/hello/Makefile.example.bsd > deleted file mode 100644 > index 607171c..0000000 > --- a/tests/hello/Makefile.example.bsd > +++ /dev/null > @@ -1,8 +0,0 @@ > -# Example makefile for build outside of the LTTng-UST tree. > - > -hello: > - ${CC} -O2 -I. -o hello -lc -llttng-ust hello.c tp.c > - > -.PHONY: clean > -clean: > - rm -f hello > diff --git a/tests/hello/Makefile.example.linux > b/tests/hello/Makefile.example.linux > deleted file mode 100644 > index c983f4c..0000000 > --- a/tests/hello/Makefile.example.linux > +++ /dev/null > @@ -1,8 +0,0 @@ > -# Example makefile for build outside of the LTTng-UST tree. > - > -hello: > - ${CC} -O2 -I. -o hello -ldl -llttng-ust hello.c tp.c > - > -.PHONY: clean > -clean: > - rm -f hello > diff --git a/tests/hello/README b/tests/hello/README > deleted file mode 100644 > index 5d5100d..0000000 > --- a/tests/hello/README > +++ /dev/null > @@ -1,2 +0,0 @@ > -This is a "hello world" application used to verify that an instrumented > -program can be built successfully. > \ No newline at end of file > diff --git a/tests/hello/hello.c b/tests/hello/hello.c > deleted file mode 100644 > index 0c18c01..0000000 > --- a/tests/hello/hello.c > +++ /dev/null > @@ -1,97 +0,0 @@ > -/* > - * Copyright (C) 2009 Pierre-Marc Fournier > - * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> > - * > - * This library is free software; you can redistribute it and/or > - * modify it under the terms of the GNU Lesser General Public > - * License as published by the Free Software Foundation; version 2.1 of > - * the License. > - * > - * This library is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > - * Lesser General Public License for more details. > - * > - * You should have received a copy of the GNU Lesser General Public > - * License along with this library; if not, write to the Free Software > - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > - */ > - > -#include <stdio.h> > -#include <unistd.h> > -#include <sys/mman.h> > -#include <stdarg.h> > -#include <sys/types.h> > -#include <sys/stat.h> > -#include <fcntl.h> > -#include <signal.h> > -#include <string.h> > -#include <arpa/inet.h> > -#include <stdlib.h> > -#include <stdbool.h> > - > -#define TRACEPOINT_DEFINE > -#include "ust_tests_hello.h" > - > -void inthandler(int sig) > -{ > - printf("in SIGUSR1 handler\n"); > - tracepoint(ust_tests_hello, tptest_sighandler); > -} > - > -int init_int_handler(void) > -{ > - int result; > - struct sigaction act; > - > - memset(&act, 0, sizeof(act)); > - result = sigemptyset(&act.sa_mask); > - if (result == -1) { > - perror("sigemptyset"); > - return -1; > - } > - > - act.sa_handler = inthandler; > - act.sa_flags = SA_RESTART; > - > - /* Only defer ourselves. Also, try to restart interrupted > - * syscalls to disturb the traced program as little as possible. > - */ > - result = sigaction(SIGUSR1, &act, NULL); > - if (result == -1) { > - perror("sigaction"); > - return -1; > - } > - > - return 0; > -} > - > -int main(int argc, char **argv) > -{ > - int i, netint; > - long values[] = { 1, 2, 3 }; > - char text[10] = "test"; > - double dbl = 2.0; > - float flt = 2222.0; > - int delay = 0; > - bool mybool = 123; /* should print "1" */ > - > - init_int_handler(); > - > - if (argc == 2) > - delay = atoi(argv[1]); > - > - fprintf(stderr, "Hello, World!\n"); > - > - sleep(delay); > - > - fprintf(stderr, "Tracing... "); > - for (i = 0; i < 1000000; i++) { > - netint = htonl(i); > - tracepoint(ust_tests_hello, tptest, i, netint, values, > - text, strlen(text), dbl, flt, mybool); > - //usleep(100000); > - } > - fprintf(stderr, " done.\n"); > - return 0; > -} > diff --git a/tests/hello/tp.c b/tests/hello/tp.c > deleted file mode 100644 > index 4790965..0000000 > --- a/tests/hello/tp.c > +++ /dev/null > @@ -1,26 +0,0 @@ > -/* > - * tp.c > - * > - * Copyright (c) 2011 Mathieu Desnoyers <[email protected]> > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > copy > - * of this software and associated documentation files (the "Software"), to > deal > - * in the Software without restriction, including without limitation the > rights > - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > - * copies of the Software, and to permit persons to whom the Software is > - * furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice shall be included in > - * all copies or substantial portions of the Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > - * SOFTWARE. > - */ > - > -#define TRACEPOINT_CREATE_PROBES > -#include "ust_tests_hello.h" > diff --git a/tests/hello/ust_tests_hello.h b/tests/hello/ust_tests_hello.h > deleted file mode 100644 > index 88f1a7f..0000000 > --- a/tests/hello/ust_tests_hello.h > +++ /dev/null > @@ -1,76 +0,0 @@ > -#undef TRACEPOINT_PROVIDER > -#define TRACEPOINT_PROVIDER ust_tests_hello > - > -#if !defined(_TRACEPOINT_UST_TESTS_HELLO_H) || > defined(TRACEPOINT_HEADER_MULTI_READ) > -#define _TRACEPOINT_UST_TESTS_HELLO_H > - > -#ifdef __cplusplus > -extern "C" { > -#endif > - > -/* > - * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> > - * > - * Permission is hereby granted, free of charge, to any person obtaining a > copy > - * of this software and associated documentation files (the "Software"), to > deal > - * in the Software without restriction, including without limitation the > rights > - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > - * copies of the Software, and to permit persons to whom the Software is > - * furnished to do so, subject to the following conditions: > - * > - * The above copyright notice and this permission notice shall be included in > - * all copies or substantial portions of the Software. > - * > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > - * SOFTWARE. > - */ > - > -#include <lttng/tracepoint.h> > -#include <stdbool.h> > - > -TRACEPOINT_EVENT(ust_tests_hello, tptest, > - TP_ARGS(int, anint, int, netint, long *, values, > - char *, text, size_t, textlen, > - double, doublearg, float, floatarg, > - bool, boolarg), > - TP_FIELDS( > - ctf_integer(int, intfield, anint) > - ctf_integer_hex(int, intfield2, anint) > - ctf_integer(long, longfield, anint) > - ctf_integer_network(int, netintfield, netint) > - ctf_integer_network_hex(int, netintfieldhex, netint) > - ctf_array(long, arrfield1, values, 3) > - ctf_array_text(char, arrfield2, text, 10) > - ctf_sequence(char, seqfield1, text, > - size_t, textlen) > - ctf_sequence_text(char, seqfield2, text, > - size_t, textlen) > - ctf_string(stringfield, text) > - ctf_float(float, floatfield, floatarg) > - ctf_float(double, doublefield, doublearg) > - ctf_integer(bool, boolfield, boolarg) > - ctf_integer_nowrite(int, filterfield, anint) > - ) > -) > - > -TRACEPOINT_EVENT(ust_tests_hello, tptest_sighandler, > - TP_ARGS(), > - TP_FIELDS() > -) > - > -#endif /* _TRACEPOINT_UST_TESTS_HELLO_H */ > - > -#undef TRACEPOINT_INCLUDE > -#define TRACEPOINT_INCLUDE "./ust_tests_hello.h" > - > -/* This part must be outside ifdef protection */ > -#include <lttng/tracepoint-event.h> > - > -#ifdef __cplusplus > -} > -#endif > -- > 1.8.2.1 > > > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
