[lttng-dev] [PATCH lttng-ust] Remove redondant "hello" test and move "hello-static-lib" to doc/examples

Jérémie Galarneau jeremie.galarneau at efficios.com
Thu Apr 11 18:49:16 EDT 2013


On Thu, Apr 11, 2013 at 6:42 PM, Mathieu Desnoyers
<mathieu.desnoyers at efficios.com> wrote:
> * Jérémie Galarneau (jeremie.galarneau at efficios.com) wrote:
>> On Thu, Apr 11, 2013 at 5:54 PM, Mathieu Desnoyers
>> <mathieu.desnoyers at efficios.com> wrote:
>> > redondant -> redundant
>>
>> Indeed, will fix.
>>
>> >
>> > * Jérémie Galarneau (jeremie.galarneau at efficios.com) 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.
>> >
>>
>> Not anymore since I also changed the manpage in this patch to reflect
>> the change.
>>
>> > Please leave it there, but move it to examples.
>> >
>>
>> I don't mind keeping either easy-ust or hello as examples. However, I
>> don't see the point in keeping them both since they demonstrate the
>> same thing; that is building an application with built-in providers.
>> What do you think?
>
> I personally use "hello" to put every type of fields that need to be
> tested. I notice that the other test programs don't have all the fields
> hello has, so we lose in coverage if we remove it.
>

Good point.

> But I agree it's more for tests. So we might want to leave "hello"
> in tests/.
>

Fair enough. I'll submit a new patch.

Thanks for the comments,
Jérémie

> Thanks,
>
> Mathieu
>
>>
>> Jérémie
>>
>> > 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 <jeremie.galarneau at efficios.com>
>> >> ---
>> >>  .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 <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 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 <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..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 <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
>> >> 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 <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>
>> >> -#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 <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/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 <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>
>> >> -#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
>> >> lttng-dev at lists.lttng.org
>> >> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>> >
>> > --
>> > Mathieu Desnoyers
>> > EfficiOS Inc.
>> > http://www.efficios.com
>>
>>
>>
>> --
>> Jérémie Galarneau
>> EfficiOS Inc.
>> http://www.efficios.com
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com



--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list