Move "hello-static-lib" to doc/examples and add non-automake Makefiles
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 10 May 2013 15:24:23 +0000 (11:24 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 10 May 2013 15:24:23 +0000 (11:24 -0400)
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.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
20 files changed:
.gitignore
README
configure.ac
doc/examples/Makefile.am
doc/examples/README [new file with mode: 0644]
doc/examples/demo/Makefile
doc/examples/easy-ust/Makefile
doc/examples/hello-static-lib/Makefile [new file with mode: 0644]
doc/examples/hello-static-lib/README [new file with mode: 0644]
doc/examples/hello-static-lib/hello.c [new file with mode: 0644]
doc/examples/hello-static-lib/tp.c [new file with mode: 0644]
doc/examples/hello-static-lib/ust_tests_hello.h [new file with mode: 0644]
doc/man/lttng-ust.3
tests/Makefile.am
tests/demo/README [deleted file]
tests/hello-static-lib/Makefile.am [deleted file]
tests/hello-static-lib/README [deleted file]
tests/hello-static-lib/hello.c [deleted file]
tests/hello-static-lib/tp.c [deleted file]
tests/hello-static-lib/ust_tests_hello.h [deleted file]

index 1065aa327f263f2f9eafab8a68fa437ebe461f1f..3d179401534c1d83fb4018a656040a8b46e7e8a9 100644 (file)
@@ -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 dadcd1f5ac5f91975d904cf6d6644c460fe1c0e0..4b3053c84d523eaa5b45eca2941d8f7e8206b239 100644 (file)
--- a/README
+++ b/README
@@ -75,8 +75,11 @@ USAGE:
       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 +97,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:
 
index c70c142b9d39de2728bac1ac73ae2a35e86029b4..802ccaa5ffe49566740e0e39fdcf46674924f12b 100644 (file)
@@ -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
index 2dc042a0945f71f8473d604457a363a2cee305bb..e9dd170d07b59df84e128f67e5a9f9f9a62221e5 100644 (file)
@@ -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 (file)
index 0000000..057311e
--- /dev/null
@@ -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.
index 41f4321084760da8b8d6d25dd8459c75926fd62e..0c829da965c39a3209237655e4a78476cc14656b 100644 (file)
@@ -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 $@ $<
index 1e3c941268f5aad546509faa466fccebbfdfbd64..304632bb3f37fff275173449998a169d1b5d7244 100644 (file)
 # 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 (file)
index 0000000..81789e2
--- /dev/null
@@ -0,0 +1,53 @@
+# Copyright (C) 2013  Jérémie Galarneau <jeremie.galarneau@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 (file)
index 0000000..abb056f
--- /dev/null
@@ -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 (file)
index 0000000..693709d
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2009  Pierre-Marc Fournier
+ * Copyright (C) 2011  Mathieu Desnoyers <mathieu.desnoyers@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 (file)
index 0000000..4790965
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * tp.c
+ *
+ * Copyright (c) 2011 Mathieu Desnoyers <mathieu.desnoyers@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 (file)
index 0000000..35ea5f5
--- /dev/null
@@ -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@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
index 27b32e9ff6bac1ee77f2ab221d1c80ff9f8e501c..aa52c590380aaff5901f5eef8f6769513d1f23c1 100644 (file)
@@ -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,7 +109,7 @@ TRACEPOINT_EVENT(
                /*
                 * ctf_array: a statically-sized array.
                 * args: (type, field name, argument expression, value)
-                */ 
+                */
                ctf_array(long, arrfield1, values, 3)
 
                /*
@@ -117,7 +117,7 @@ TRACEPOINT_EVENT(
                 * a string. No need to be terminated by a null
                 * character.
                 * Behavior is undefined if "text" argument is NULL.
-                */ 
+                */
                ctf_array_text(char, arrfield2, text, 10)
 
                /*
@@ -129,7 +129,7 @@ TRACEPOINT_EVENT(
                 * be preferred to "char", since the signedness of
                 * "char" is implementation-defined.
                 * Behavior is undefined if "text" argument is NULL.
-                */ 
+                */
                ctf_sequence(char, seqfield1, text,
                             size_t, textlen)
 
@@ -176,54 +176,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)
 
@@ -272,8 +272,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:
@@ -291,7 +293,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
index 425440a5160890101a31c00bc76c4d615d69305e..317edcb0b355e87bf51947ec2e8b4ea572a48b0b 100644 (file)
@@ -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
deleted file mode 100644 (file)
index 89e5889..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-"demo" and "demo-trace" are moved to lttng-tools, under:
-
-       tests/regression/ust/linking/
-
-The "demo-trace" script was renamed to "demo_preload".
diff --git a/tests/hello-static-lib/Makefile.am b/tests/hello-static-lib/Makefile.am
deleted file mode 100644 (file)
index 699845b..0000000
+++ /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 (file)
index abb056f..0000000
+++ /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 (file)
index 584d3f7..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2009  Pierre-Marc Fournier
- * Copyright (C) 2011  Mathieu Desnoyers <mathieu.desnoyers@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 (file)
index 4790965..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * tp.c
- *
- * Copyright (c) 2011 Mathieu Desnoyers <mathieu.desnoyers@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 (file)
index 35ea5f5..0000000
+++ /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@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
This page took 0.037411 seconds and 4 git commands to generate.