[lttng-dev] [PATCH lttng-ust] Move "hello-static-lib" to doc/examples and add non-automake Makefiles
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Fri May 10 11:26:07 EDT 2013
* Jérémie Galarneau (jeremie.galarneau at efficios.com) wrote:
> The examples are now automatically built as part of the default make target
> and plain Makefiles with no dependency on automake are provided for clarity.
>
> Update the manpage and README to reflect the change and remove lots of trailing
> whitespace.
merged into master branch. Since it does not change features, this will
go into 2.2. Thanks!
Mathieu
>
> Signed-off-by: Jérémie Galarneau <jeremie.galarneau at efficios.com>
> ---
> .gitignore | 5 +-
> README | 18 +++--
> configure.ac | 1 -
> 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 | 64 +++++++++--------
> tests/Makefile.am | 2 +-
> tests/demo/README | 6 +-
> 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 -------------------
> 20 files changed, 362 insertions(+), 271 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
>
> diff --git a/.gitignore b/.gitignore
> index 1065aa3..3d17940 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -31,6 +31,10 @@ lttng-ust.pc
> ustctl/ustctl
> ust-consumerd/ust-consumerd
>
> +doc/examples/demo/demo
> +doc/examples/easy-ust/sample
> +doc/examples/hello-static-lib/hello
> +
> tests/hello/hello
> tests/hello.cxx/hello
> tests/same_line_tracepoint/same_line_tracepoint
> @@ -39,5 +43,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..09dd4c3 100644
> --- a/README
> +++ b/README
> @@ -72,11 +72,13 @@ 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:
> - - tests/hello/ hello.c tp.c ust_tests_hello.h Makefile.example.*
> + - Examples:
> + - 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:
> @@ -94,14 +96,18 @@ USAGE:
> needed. Another way is to dlopen the tracepoint probe when needed
> by the application.
> - Example:
> - - tests/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
>
> - - Enable instrumentation and control tracing with the "lttng" command
> - from lttng-tools. See lttng-tools doc/quickstart.txt.
> - Note about dlclose() usage: it is not safe to use dlclose on a
> provider shared object that is being actively used for tracing due
> to a lack of reference counting from lttng-ust to the used shared
> object.
> + - Enable instrumentation and control tracing with the "lttng" command
> + from lttng-tools. See lttng-tools doc/quickstart.txt.
> + - Note for C++ support: although an application instrumented with
> + tracepoints can be compiled with g++, tracepoint probes should be
> + compiled with gcc (only tested with gcc so far).
> +
>
> ENVIRONMENT VARIABLES:
>
> diff --git a/configure.ac b/configure.ac
> index e54cfea..d41df7a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -266,7 +266,6 @@ AC_CONFIG_FILES([
> 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..057311e
> --- /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 ensure the examples'
> +Makefiles use the source tree's public header files and binaries.
> 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..81789e2
> --- /dev/null
> +++ b/doc/examples/hello-static-lib/Makefile
> @@ -0,0 +1,53 @@
> +# Copyright (C) 2013 Jérémie Galarneau <jeremie.galarneau at efficios.com>
> +#
> +# 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 compiled as 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 <mathieu.desnoyers at efficios.com>
> + *
> + * 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 <mathieu.desnoyers at efficios.com>
> + *
> + * 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 <mathieu.desnoyers at efficios.com>
> + *
> + * 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..f4ec56f 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)
>
> @@ -268,8 +268,10 @@ carefully:
> library with "\-llttng-ust".
> - 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
> + - Examples:
> + - 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..317edcb 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -1,4 +1,4 @@
> -SUBDIRS = . hello hello-static-lib same_line_tracepoint snprintf
> +SUBDIRS = . hello same_line_tracepoint snprintf
>
> if CXX_WORKS
> SUBDIRS += hello.cxx
> diff --git a/tests/demo/README b/tests/demo/README
> index 89e5889..674bd3a 100644
> --- a/tests/demo/README
> +++ b/tests/demo/README
> @@ -1,5 +1 @@
> -"demo" and "demo-trace" are moved to lttng-tools, under:
> -
> - tests/regression/ust/linking/
> -
> -The "demo-trace" script was renamed to "demo_preload".
> +"demo" and "demo-trace" are moved to doc/examples/demo
> 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 <mathieu.desnoyers at efficios.com>
> - *
> - * 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 <mathieu.desnoyers at efficios.com>
> - *
> - * 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 <mathieu.desnoyers at efficios.com>
> - *
> - * 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
> --
> 1.8.2.1
>
>
> _______________________________________________
> 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
More information about the lttng-dev
mailing list