lttng-ust.git
7 years agoVersion 2.8.0 v2.8.0
Mathieu Desnoyers [Fri, 20 May 2016 20:13:00 +0000 (16:13 -0400)] 
Version 2.8.0

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoPrint DBG() message about compiler weak hidden symbol behavior
Mathieu Desnoyers [Fri, 20 May 2016 19:23:06 +0000 (15:23 -0400)] 
Print DBG() message about compiler weak hidden symbol behavior

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agotest: add test for gcc issue with weak hidden symbol on powerpc
Mathieu Desnoyers [Fri, 20 May 2016 17:02:47 +0000 (13:02 -0400)] 
test: add test for gcc issue with weak hidden symbol on powerpc

On Ubuntu 32-bit powerpc, gcc 4.4, 4.6, 4.8, gcc -O1 (and O2) causes
weak hidden symbols to have different addresses within the same module.
It seems to be fixed in gcc 4.9 on powerpc.

This issue causes some tracepoints to be silently hidden from LTTng.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoRestrict Java context retriever names to a set of valid characters
Alexandre Montplaisir [Thu, 19 May 2016 21:55:02 +0000 (17:55 -0400)] 
Restrict Java context retriever names to a set of valid characters

Since the context/retriever names end up as-is as part of the
metadata, only alphanumerical characters, periods "." and
underscores "_" should be accepted. The names must also not
start with a number.

Refuse registration of retriever names that do not respect these
conditions, so that the problem is reported right away to the
application.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: Correctly compute Java agent list loggers response size
Alexandre Montplaisir [Thu, 19 May 2016 19:59:50 +0000 (15:59 -0400)] 
Fix: Correctly compute Java agent list loggers response size

The code was assuming that (number of characters == number of bytes),
which is not always the case!

The notions of number of bytes and data sizes only make sense when
the strings are encoded into byte arrays. The response's getBytes()
method should the only one handling these concepts.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoAdd support for aarch64_be
Mathieu Desnoyers [Thu, 19 May 2016 20:10:26 +0000 (16:10 -0400)] 
Add support for aarch64_be

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: Fix synchronization of LTTngAgent#dispose
Alexandre Montplaisir [Thu, 19 May 2016 19:10:04 +0000 (15:10 -0400)] 
Fix: Fix synchronization of LTTngAgent#dispose

Commit 9355f049 changed the dispose() back to non-static. However,
"static synchronized" and "synchronized" are not the same thing!
The latter synchronizes on the instance, but the former synchronizes
on the class object.

In this case we need to synchronize on the class object manually.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: Verify number of bytes contained in sessiond agent commands
Alexandre Montplaisir [Thu, 19 May 2016 18:54:59 +0000 (14:54 -0400)] 
Fix: Verify number of bytes contained in sessiond agent commands

The command header indicates the number of bytes in the payload.
Make sure those bytes were really present on the socket, and throw
an error if they were not.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: Avoid potential null dereference with log4j loggers
Alexandre Montplaisir [Thu, 19 May 2016 18:49:06 +0000 (14:49 -0400)] 
Fix: Avoid potential null dereference with log4j loggers

Coverity warns that the return of LogManager.getCurrentLoggers()
can contain null elements. Add an explicit null check to skip those.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoSpecify UTF-8 encoding for all Java agent commands
Alexandre Montplaisir [Thu, 19 May 2016 18:31:20 +0000 (14:31 -0400)] 
Specify UTF-8 encoding for all Java agent commands

Context info was already set to UTF-8, but agent enabled/disabled
and list-loggers commands should also specify the UTF-8 encoding.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: merge tap tests stdout and stderr
Michael Jeanson [Wed, 18 May 2016 19:18:05 +0000 (15:18 -0400)] 
Fix: merge tap tests stdout and stderr

This makes the output and error statement ordered in the log
file and ensure that the first line is the tap test plan. Some tap
parser are confused if the test plan is not on the first line.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoDocumentation: ring buffer: SWITCH_FLUSH can be used when active
Mathieu Desnoyers [Wed, 18 May 2016 14:06:45 +0000 (10:06 -0400)] 
Documentation: ring buffer: SWITCH_FLUSH can be used when active

Snapshot mode tracing may use SWITCH_FLUSH while tracing is active.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: unchecked return value in trace_clock_read64_monotonic
Mathieu Desnoyers [Tue, 17 May 2016 16:05:10 +0000 (12:05 -0400)] 
Fix: unchecked return value in trace_clock_read64_monotonic

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: portability: no arith on void pointer
Mathieu Desnoyers [Mon, 16 May 2016 19:07:05 +0000 (15:07 -0400)] 
Fix: portability: no arith on void pointer

Reported by cppcheck.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: add "has_build_id" and "has_debug_link" fields to debuginfo events
Mathieu Desnoyers [Mon, 16 May 2016 14:40:32 +0000 (10:40 -0400)] 
Fix: add "has_build_id" and "has_debug_link" fields to debuginfo events

This allows trace analyzers to know whether they should expect the build
id or debug link events following the bin_info event.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: initialize build id and debug link flags to 0
Mathieu Desnoyers [Mon, 16 May 2016 18:00:16 +0000 (14:00 -0400)] 
Fix: initialize build id and debug link flags to 0

When trace_baddr is called for [vdso], those fields are used without
being initialized.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoTests: Add tap-driver.sh for automake < 1.12
Michael Jeanson [Mon, 16 May 2016 15:18:31 +0000 (11:18 -0400)] 
Tests: Add tap-driver.sh for automake < 1.12

Add the tap-driver.sh script in the aux directory to enable
systems with an automake version prior to 1.12 to bootstrap
the source tree from git.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoTests: Replace prove by autotools tap runner
Michael Jeanson [Thu, 12 May 2016 15:01:18 +0000 (11:01 -0400)] 
Tests: Replace prove by autotools tap runner

This patch removes the dependency on the prove perl script
to run the TAP test suite. It replaces it with the autotools
shell TAP driver that only requires a shell and awk.

Custom arguments can be passed to the test runner with
env variables as follow:

  env LOG_DRIVER_FLAGS='--comments --ignore-exit' \
      TESTS='foo.test baz.test' make -e check

This tap driver also creates a log file for each test that
can then be used by another system to build a test report.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agobootstrap: Standardize on autoreconf -vi
Mathieu Desnoyers [Thu, 12 May 2016 15:55:19 +0000 (11:55 -0400)] 
bootstrap: Standardize on autoreconf -vi

Don't overwrite already generated files.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoHarmonize bootstrap script across projects
Michael Jeanson [Thu, 12 May 2016 15:01:19 +0000 (11:01 -0400)] 
Harmonize bootstrap script across projects

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agolttng-ust(3): order environment variables
Philippe Proulx [Wed, 11 May 2016 15:56:09 +0000 (11:56 -0400)] 
lttng-ust(3): order environment variables

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agolttng-ust(3): fix syntax of env. variables section
Philippe Proulx [Wed, 11 May 2016 15:54:48 +0000 (11:54 -0400)] 
lttng-ust(3): fix syntax of env. variables section

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agolttng-ust(3): document $LTTNG_HOME
Philippe Proulx [Wed, 11 May 2016 15:49:48 +0000 (11:49 -0400)] 
lttng-ust(3): document $LTTNG_HOME

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: Java agent should use LTTNG_HOME
Mathieu Desnoyers [Wed, 11 May 2016 00:33:00 +0000 (20:33 -0400)] 
Fix: Java agent should use LTTNG_HOME

Both in UST C/C++ support and Python agent, LTTNG_HOME can be used to
override HOME for lttng-ust. Ensure the Java agent has the same
behavior.

Fixes: #881
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: examples make distcheck failure
Mathieu Desnoyers [Tue, 10 May 2016 22:10:43 +0000 (18:10 -0400)] 
Fix: examples make distcheck failure

"make distcheck" marks each source file on the srcdir in the extracted
dist tarball read-only. The examples copy from the srcdir into the
builddir before running the "make" examples, but this keeps the
read-only flag on the builddir directories, which fails the build
because the resulting objects cannot be created.

Fix this by ensuring the copied target directory for each example is
user-writeable.

Fixes: #903
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoCleanup: add static for internal symbols
Mathieu Desnoyers [Tue, 10 May 2016 18:49:14 +0000 (14:49 -0400)] 
Cleanup: add static for internal symbols

Those underscore-prefixed symbols are only used internally within the
tracepoint provider. Declare them as static symbols, thus removing
unneeded global symbols which are not meant to be used by applications.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoCleanup: Remove unused max() macros from ring_buffer_frontend.c
Mathieu Desnoyers [Tue, 10 May 2016 02:36:00 +0000 (22:36 -0400)] 
Cleanup: Remove unused max() macros from ring_buffer_frontend.c

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoUse min_t/max_t macros in lttng-ust-elf.c
Mathieu Desnoyers [Tue, 10 May 2016 02:34:25 +0000 (22:34 -0400)] 
Use min_t/max_t macros in lttng-ust-elf.c

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoTests: update ust-elf tests to reflect correct memsz computation
Antoine Busque [Mon, 9 May 2016 22:09:37 +0000 (18:09 -0400)] 
Tests: update ust-elf tests to reflect correct memsz computation

Signed-off-by: Antoine Busque <abusque@efficios.com>
7 years agoFix: erroneous computation of ELF in-memory size
Antoine Busque [Mon, 9 May 2016 21:54:44 +0000 (17:54 -0400)] 
Fix: erroneous computation of ELF in-memory size

The current algorithm for computation of ELF in-memory size computed
values using the `p_align` field from program headers to align loaded
segments, when in fact `p_align` is only used to describe the
relationship between a segment's offset in the ELF file and its
virtual address once loaded in memory (`p_vaddr`), not the alignment
between segments. (Refer to the ELF specification version 1.1 at pages
2-2 and 2-8 for more details.)

This implementation instead uses the `p_memsz` and `p_vaddr` fields to
compute the highest virtual address of the executable, and uses the
difference from its base address as the in-memory size.

Signed-off-by: Antoine Busque <abusque@efficios.com>
7 years agoMake code and man pages share the same default values
Philippe Proulx [Wed, 4 May 2016 20:59:41 +0000 (16:59 -0400)] 
Make code and man pages share the same default values

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 years agoFix: remove NULL check of nonnull parameter in dlclose
Antoine Busque [Mon, 9 May 2016 20:33:29 +0000 (16:33 -0400)] 
Fix: remove NULL check of nonnull parameter in dlclose

The `handle` parameter of `dlclose`, as defined in
`include/lttng/ust-dlfcn.h` is marked `__nonnull`. GCC starting with
version 6.1 emits warnings for comparisons of nonnull arguments
against NULL by default (see -Wnonnull-compare).

Therefore, this removes a superfluous NULL check on `handle`, for
which GCC emitted a warning.

Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: endianness of integers received by filter
Mathieu Desnoyers [Tue, 26 Apr 2016 22:39:38 +0000 (18:39 -0400)] 
Fix: endianness of integers received by filter

We need to byteswap integers passed to the filter when they are tagged
as being in an endianness which differs from the architecture
endianness, so the integer comparisons make sense in terms of value
rather than raw bytes for those fields.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoVersion 2.8.0-rc2 v2.8.0-rc2
Mathieu Desnoyers [Tue, 26 Apr 2016 20:24:39 +0000 (16:24 -0400)] 
Version 2.8.0-rc2

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoDoc: Update README.md
Michael Jeanson [Mon, 25 Apr 2016 19:08:08 +0000 (15:08 -0400)] 
Doc: Update README.md

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: jul and log4j agents makefile missing line and indentation
Michael Jeanson [Mon, 25 Apr 2016 18:46:20 +0000 (14:46 -0400)] 
Fix: jul and log4j agents makefile missing line and indentation

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: re-introduce exported symbols
Mathieu Desnoyers [Mon, 25 Apr 2016 17:12:51 +0000 (13:12 -0400)] 
Fix: re-introduce exported symbols

Keep those exported symbols for backward shared object compatibility.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoDoc: update manpages for soinfo/sopath name change
Antoine Busque [Wed, 20 Apr 2016 21:05:09 +0000 (17:05 -0400)] 
Doc: update manpages for soinfo/sopath name change

Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoRename statedump and dl events and fields
Antoine Busque [Wed, 20 Apr 2016 17:09:07 +0000 (13:09 -0400)] 
Rename statedump and dl events and fields

The current names of the `lttng_ust_statedump:soinfo` event, as well
as its field `sopath` both refer exclusively to shared objects (so),
although the event applies to any executables, including
position-independent executables (PIE), as well as shared objects.

Thus, this patch changes the name of the event to `bin_info` and the
field to `path`, to avoid any confusion.

For consistency, the `sopath` field in the `lttng_ust_dl:dlopen` event
is also renamed to `path`, although dlopen only applies to shared
objects.

Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoTests: list ust-elf test data explicitly in EXTRA_DIST
Antoine Busque [Fri, 15 Apr 2016 21:37:43 +0000 (17:37 -0400)] 
Tests: list ust-elf test data explicitly in EXTRA_DIST

Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoTests: add tests for lttng_ust_elf_is_pic
Antoine Busque [Fri, 15 Apr 2016 17:18:04 +0000 (13:18 -0400)] 
Tests: add tests for lttng_ust_elf_is_pic

This adds tests for the lttng_ust_elf_is_pic function used to tell
whether an executable is position independent code or not. Three
sample executables are used, one non-PIC executable, one PIE, and a
PIC shared object.

Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoAdd is_pic field to statedump soinfo event
Antoine Busque [Wed, 13 Apr 2016 21:31:57 +0000 (17:31 -0400)] 
Add is_pic field to statedump soinfo event

This field indicates whether the executable or library is position
independent code (PIC). The field is not added to the similar dlopen
event from liblttng-ust-dl because in that case all dlopened libraries
are necessarily PIC.

This allows a posteriori analyses to be performed without having to
read the executable file to know whether adresses are relative to the
base address or absolute.

Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: add common jar to lttng-ust-agent-all dependencies
Mathieu Desnoyers [Tue, 12 Apr 2016 02:24:39 +0000 (22:24 -0400)] 
Fix: add common jar to lttng-ust-agent-all dependencies

Ensures that applications still find the LTTngAgent class even if none
of JUL nor log4j agents are present.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: add version to lttng-ust-agent-all jar file
Mathieu Desnoyers [Tue, 12 Apr 2016 02:24:25 +0000 (22:24 -0400)] 
Fix: add version to lttng-ust-agent-all jar file

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: rename liblttng-ust-agent to lttng-ust-agent-all
Mathieu Desnoyers [Tue, 12 Apr 2016 00:32:55 +0000 (20:32 -0400)] 
Fix: rename liblttng-ust-agent to lttng-ust-agent-all

Rename liblttng-ust-agent to lttng-ust-agent-all to respect the new
jar file naming scheme, but keep a symbolic link from liblttng-ust-agent
to lttng-ust-agent-all to keep backwards compatibility.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: re-add liblttng-ust-agent.jar
Mathieu Desnoyers [Mon, 11 Apr 2016 23:53:22 +0000 (19:53 -0400)] 
Fix: re-add liblttng-ust-agent.jar

Re-add a jar file that imports all other LTTng java agents (JUL and
log4j) if they are available on the system.

This provides backwards compatibility with Java applications that have
CLASSPATH defined following UST 2.7 documentation.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: lttng java agent: dispose is non-static
Mathieu Desnoyers [Mon, 11 Apr 2016 22:57:42 +0000 (18:57 -0400)] 
Fix: lttng java agent: dispose is non-static

The UST 2.7 java agent LTTngAgent class has a non-static dispose method.
This class is kept in 2.8 for backwards compatibility purposes. Keep
this API unchanged.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agodoc/man: lttng-ust(3): add tracing control to example
Philippe Proulx [Thu, 7 Apr 2016 01:29:22 +0000 (21:29 -0400)] 
doc/man: lttng-ust(3): add tracing control to example

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agodoc/man: lttng-ust(3): split example files in subsections
Philippe Proulx [Thu, 7 Apr 2016 01:23:41 +0000 (21:23 -0400)] 
doc/man: lttng-ust(3): split example files in subsections

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agodoc/man/common-copyrights: add missing THANKS section
Philippe Proulx [Thu, 7 Apr 2016 01:13:41 +0000 (21:13 -0400)] 
doc/man/common-copyrights: add missing THANKS section

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agodoc/man: lttng-ust(3): add missing ENVIRONMENT VARIABLES section
Philippe Proulx [Thu, 7 Apr 2016 01:10:27 +0000 (21:10 -0400)] 
doc/man: lttng-ust(3): add missing ENVIRONMENT VARIABLES section

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agodoc/man: do not use macros in the NAME section
Philippe Proulx [Thu, 7 Apr 2016 07:45:23 +0000 (03:45 -0400)] 
doc/man: do not use macros in the NAME section

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agodoc/man: remove duplicate copyrights section
Philippe Proulx [Thu, 7 Apr 2016 05:52:15 +0000 (01:52 -0400)] 
doc/man: remove duplicate copyrights section

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoREADME.md: bolden dependencies and update links
Philippe Proulx [Thu, 7 Apr 2016 00:27:41 +0000 (20:27 -0400)] 
README.md: bolden dependencies and update links

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoREADME.md: split required and optional dependencies
Philippe Proulx [Thu, 7 Apr 2016 00:26:50 +0000 (20:26 -0400)] 
README.md: split required and optional dependencies

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoConvert man pages to AsciiDoc
Philippe Proulx [Tue, 5 Apr 2016 14:50:34 +0000 (10:50 -0400)] 
Convert man pages to AsciiDoc

This patch adds a new "enable" option to the configure
script, --enable-man-pages (default) and --disable-man-pages.

When man pages are enabled, they are built and installed.

The man pages are built from their AsciiDoc sources in this way:

    AsciiDoc source -> asciidoc -> DocBook XML -> xmlto -> troff
                          ^                         ^
                       included                DocBook XSLs
                       AsciiDoc                     +
                        files                   custom XSLs

The built troff man pages should be distributed in a release
tarball. When building from a release tarball, the tools (asciidoc
and xmlto) are not strictly needed, unless a man page source is
modified/removed, in which case:

    if the tools existed at configure time:
        rebuild/update man page
    otherwise:
        show an error message which indicates why the target
        cannot be built because the tools are missing

When building from the Git repository, and when --enable-man-pages
is used, the tools are required at configure time.

The incentive for this change is to make the man pages easier to
write and maintain, AsciiDoc being far more easy to read and write
than pure troff, as well as enable rich HTML man page generation
from the intermediate DocBook XML file to publish man pages with
working internal/external links and style improvements on the
LTTng website. This also makes LTTng-UST man pages conform to the
LTTng-tools ones which use the same mechanism.

The following "redirection" man pages are also added:

  * do_tracepoint(3)
  * tracepoint(3)
  * tracepoint_enabled(3)

They all redirect to lttng-ust(3). They are always distributed,
but only installed when lttng-ust(3) is also installed (which is
when --enable-man-page exists at configure time).

See the new doc/man/README.md file for more details about the
new files and macros to use in the AsciiDoc man page source files.

This patch also contains various content fixes and updates of the
LTTng-UST man pages. Some new content is based on the online LTTng
documentation.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: remove dead code from filter interpreter
Mathieu Desnoyers [Tue, 5 Apr 2016 13:30:31 +0000 (09:30 -0400)] 
Fix: remove dead code from filter interpreter

This has been detected in the lttng-modules port of the filter
interpreter by Coverity. The intent of the code in UST is similar, and
we can find the same dead code, although Coverity may not see it as dead
code because it cannot prove that the string is not modified between the
two uses. Since we know it is not modified, remove the dead code.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: convey enum value signedness into metadata
Mathieu Desnoyers [Sun, 20 Mar 2016 18:11:29 +0000 (14:11 -0400)] 
Fix: convey enum value signedness into metadata

Currently, passing an enum range of:

  ctf_enum_range("blah", 0, UINT_MAX)

will print a range of 0 ... -1 in the generated CTF metadata, which does
not reflect signedness of the values.

Also, struct ustctl_enum_entry is missing a LTTNG_PACKED attribute,
which is against our protocol rules.

This change needs to be pushed in locked-step into lttng-tools and
lttng-ust, since it breaks the protocol between the two when UST uses
the new enumeration type (introduced in 2.8.0-rc1).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoVersion 2.8.0-rc1 v2.8.0-rc1
Mathieu Desnoyers [Fri, 18 Mar 2016 23:11:27 +0000 (19:11 -0400)] 
Version 2.8.0-rc1

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: remove assertions in lttng-ust-comm init
Mathieu Desnoyers [Wed, 16 Mar 2016 13:55:10 +0000 (09:55 -0400)] 
Fix: remove assertions in lttng-ust-comm init

Assertions in the lttng-ust-comm init function are slightly too harsh
for their own good. In situations involving incoherent seccomp profiles
(e.g. accepting futex, poll, nanosleep, clock_nanosleep, but not
restart_syscall), unexpected errno values can be returned by
sem_timedwait.

Print an error in those situations, but let the application proceed.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoAdd tracepoint_disable_destructors()
Mathieu Desnoyers [Thu, 10 Mar 2016 14:32:59 +0000 (09:32 -0500)] 
Add tracepoint_disable_destructors()

Calling this function from an instrumented program allows disabling
tracepoint destructors. This allows threads to continue calling
tracepoint code even after the tracepoint destructors have run. This is
needed for applications that exit without joining all their threads.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Jeffrey Chen <cpthk@live.com>
8 years agoDocumentation: fix manpage typo
Mathieu Desnoyers [Thu, 10 Mar 2016 20:21:00 +0000 (15:21 -0500)] 
Documentation: fix manpage typo

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: move lttng_context_is_app to core file
Mathieu Desnoyers [Thu, 10 Mar 2016 15:17:53 +0000 (10:17 -0500)] 
Fix: move lttng_context_is_app to core file

Needed by both lttng-ust and lttng-ust-ctl.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: move dummy functions to common file
Mathieu Desnoyers [Thu, 10 Mar 2016 15:13:17 +0000 (10:13 -0500)] 
Fix: move dummy functions to common file

Those dummy functions are needed by both lttng-ust and lttng-ust-ctl
libraries.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: handle backward probe compatibility for application contexts
Mathieu Desnoyers [Thu, 10 Mar 2016 01:05:53 +0000 (20:05 -0500)] 
Fix: handle backward probe compatibility for application contexts

Fix segmentation fault of applications built against lttng-ust 2.7,
linked against lttng-ust 2.8-pre when tracing is active. We need to
consider backward ABI compability here, which can be done by using
a dummy context in place of an application context when recording an
event. Basically, application contexts won't be saved into events
generated by a lttng-ust 2.7 probe provider: those will appear as empty
contexts.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: application context header size
Mathieu Desnoyers [Thu, 10 Mar 2016 00:37:56 +0000 (19:37 -0500)] 
Fix: application context header size

We need to use the RCU-dereferenced pointer when calculating the context
header size, else it may race with application context
register/unregister.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: event ctx get size should be after chan ctx
Mathieu Desnoyers [Thu, 10 Mar 2016 00:35:26 +0000 (19:35 -0500)] 
Fix: event ctx get size should be after chan ctx

Match the record functions, and the CTF spec. This has no impact
currently because event contexts are not implemented.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoClarify and simplify the Java agent "Hello" examples
Alexandre Montplaisir [Mon, 7 Mar 2016 21:43:01 +0000 (16:43 -0500)] 
Clarify and simplify the Java agent "Hello" examples

An "Hello World" type example should only mention the bare
minimum required, to avoid confusing new users further!

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoExport the stream instance ID
Julien Desfossez [Tue, 7 Jul 2015 17:08:16 +0000 (13:08 -0400)] 
Export the stream instance ID

Allow the lttng-consumer to query the stream instance ID.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoGenerate and export the sequence number
Julien Desfossez [Mon, 15 Jun 2015 20:33:47 +0000 (16:33 -0400)] 
Generate and export the sequence number

This allows the viewer to identify the gaps between trace packets.

This is a locked-step with the corresponding commit in lttng-tools.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoAdd stream instance id to the packet header
Julien Desfossez [Mon, 15 Jun 2015 15:04:58 +0000 (11:04 -0400)] 
Add stream instance id to the packet header

This new field allows the viewer to distinguish between trace files
belonging to the same packet stream (in LTTng: the same CPU in the same
channel).

This is a locked-step with the corresponding commit in lttng-tools.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Mathieu.Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: print empty line after AC_OUTPUT
Philippe Proulx [Mon, 29 Feb 2016 18:14:01 +0000 (13:14 -0500)] 
configure.ac: print empty line after AC_OUTPUT

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: macros with no arguments do not need ()
Philippe Proulx [Mon, 29 Feb 2016 18:13:36 +0000 (13:13 -0500)] 
configure.ac: macros with no arguments do not need ()

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: standardize indentation to tabs
Philippe Proulx [Mon, 29 Feb 2016 18:08:53 +0000 (13:08 -0500)] 
configure.ac: standardize indentation to tabs

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: move AC_PROG_SED() close to other AC_PROG_*()
Philippe Proulx [Sat, 27 Feb 2016 09:39:36 +0000 (04:39 -0500)] 
configure.ac: move AC_PROG_SED() close to other AC_PROG_*()

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: test -a -> shell's && (more portable)
Philippe Proulx [Sat, 27 Feb 2016 09:37:54 +0000 (04:37 -0500)] 
configure.ac: test -a -> shell's && (more portable)

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: use test "x$var" = "xyes"
Philippe Proulx [Sat, 27 Feb 2016 09:32:11 +0000 (04:32 -0500)] 
configure.ac: use test "x$var" = "xyes"

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: AM_CONDITIONAL() accepts two arguments
Philippe Proulx [Sat, 27 Feb 2016 09:30:31 +0000 (04:30 -0500)] 
configure.ac: AM_CONDITIONAL() accepts two arguments

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: use dnl at appropriate places
Philippe Proulx [Sat, 27 Feb 2016 09:28:57 +0000 (04:28 -0500)] 
configure.ac: use dnl at appropriate places

Use dnl where such a comment makes no sense in the outputted
configure script.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: if -> AS_IF()
Philippe Proulx [Sat, 27 Feb 2016 09:22:31 +0000 (04:22 -0500)] 
configure.ac: if -> AS_IF()

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: case -> AS_CASE()
Philippe Proulx [Sat, 27 Feb 2016 09:13:33 +0000 (04:13 -0500)] 
configure.ac: case -> AS_CASE()

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: add missing quotes in macro calls
Philippe Proulx [Sat, 27 Feb 2016 09:00:28 +0000 (04:00 -0500)] 
configure.ac: add missing quotes in macro calls

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: use macros for version name and description
Philippe Proulx [Sat, 27 Feb 2016 08:59:33 +0000 (03:59 -0500)] 
configure.ac: use macros for version name and description

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoconfigure.ac: do not use shell eval for known values
Philippe Proulx [Sat, 27 Feb 2016 08:07:14 +0000 (03:07 -0500)] 
configure.ac: do not use shell eval for known values

The version parts are known at Autoconf time, thus it makes no
sense to do string manipulation using the user's shell.

Just dnl the V_EXTRA definition when there's no extra version.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoAdd CONTRIBUTING.md
Philippe Proulx [Sat, 20 Feb 2016 01:55:06 +0000 (20:55 -0500)] 
Add CONTRIBUTING.md

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoOutput "(null)" when ctf_string()'s arg is NULL
Philippe Proulx [Wed, 17 Feb 2016 23:04:42 +0000 (18:04 -0500)] 
Output "(null)" when ctf_string()'s arg is NULL

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: disable use of __builtin_return_address(0) on 32-bit PowerPC
Mathieu Desnoyers [Wed, 17 Feb 2016 23:18:17 +0000 (18:18 -0500)] 
Fix: disable use of __builtin_return_address(0) on 32-bit PowerPC

It causes stack corruption in the tracepoint event probes.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: java agent 32-bit pointer to jlong warning
Mathieu Desnoyers [Tue, 16 Feb 2016 16:05:10 +0000 (11:05 -0500)] 
Fix: java agent 32-bit pointer to jlong warning

Fix the following compiler warning on 32-bit:

15:07:12 lttng_ust_context.c: In function 'Java_org_lttng_ust_agent_context_LttngContextApi_registerProvider':
15:07:12 lttng_ust_context.c:377:17: warning: cast from pointer to
integer of different size [-Wpointer-to-int-cast]
15:07:12   provider_ref = (jlong) provider;

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: Use Java 6 syntax in JUL examples
Michael Jeanson [Mon, 15 Feb 2016 19:29:58 +0000 (14:29 -0500)] 
Fix: Use Java 6 syntax in JUL examples

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: add missing example file to dist tarball
Mathieu Desnoyers [Fri, 12 Feb 2016 23:30:06 +0000 (18:30 -0500)] 
Fix: add missing example file to dist tarball

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: add missing header to dist tarball
Mathieu Desnoyers [Fri, 12 Feb 2016 23:25:37 +0000 (18:25 -0500)] 
Fix: add missing header to dist tarball

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: add missing LttngContextApi.java to dist tarball
Mathieu Desnoyers [Fri, 12 Feb 2016 23:14:16 +0000 (18:14 -0500)] 
Fix: add missing LttngContextApi.java to dist tarball

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoPass the Java app context information using two separate arrays
Alexandre Montplaisir [Fri, 12 Feb 2016 20:28:07 +0000 (15:28 -0500)] 
Pass the Java app context information using two separate arrays

Instead of using one array with length limits for strings, we can
pass two separate arrays: the first will continue to contain fixed-
size entries, but instead of 256 bytes for strings, we will use
4-byte offsets to a second array, which will contain only those
variable-length strings.

The advantage is that we pass less bytes overall, and we don't
limit the context names or values to 256 bytes anymore.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: Correctly report filter notifications on Java agent teardown
Alexandre Montplaisir [Fri, 12 Feb 2016 16:51:47 +0000 (11:51 -0500)] 
Fix: Correctly report filter notifications on Java agent teardown

If a Java agent gets disposed, it should not just clear() all its
tracked event rules: it should first send corresponding filter change
notifications indicating that these rules are not tracked anymore.

This fixes a problem where if event rules were still enabled on agent
tear down, the filter notifier's own tracked events would become out
of sync.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoAdd some logging to the AbstractLttngAgent
Alexandre Montplaisir [Fri, 12 Feb 2016 00:45:47 +0000 (19:45 -0500)] 
Add some logging to the AbstractLttngAgent

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoFix: Clear tracked application contexts upon closing a Java agent
Alexandre Montplaisir [Fri, 12 Feb 2016 00:37:44 +0000 (19:37 -0500)] 
Fix: Clear tracked application contexts upon closing a Java agent

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoIntroduce a verbose mode for the Java agent
Alexandre Montplaisir [Thu, 4 Feb 2016 23:37:37 +0000 (18:37 -0500)] 
Introduce a verbose mode for the Java agent

If the LTTNG_UST_DEBUG environment variable is defined, log messages
from the Java agent will be sent to stderr. This is in line with the
rest of UST.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoImplement Java agent application context retrieval
Alexandre Montplaisir [Thu, 7 Jan 2016 22:43:34 +0000 (17:43 -0500)] 
Implement Java agent application context retrieval

Java application can now register an IContextInfoRetriever to provide
context information. This information can be used for filtering:

  lttng enable-event -j myevent --filter '$app.retriever:context=="something"'

or for saving in the trace directly by enabling the context:

  lttng add-context -j -t '$app.retriever:context'

See the "ApplicationContextExample.java" program for an example of
utilization.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoTurn ISessiondCommand into an abstract class
Alexandre Montplaisir [Fri, 8 Jan 2016 20:28:07 +0000 (15:28 -0500)] 
Turn ISessiondCommand into an abstract class

This will allow us to define common methods to read strings passed on
the socket, which many commands (including upcoming ones) need to do.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 years agoSplit the JNI APIs in separate classes
Alexandre Montplaisir [Mon, 4 Jan 2016 20:11:11 +0000 (15:11 -0500)] 
Split the JNI APIs in separate classes

Isolate the "native" methods in their own class, to better reflect
what is present in the equivalent C files.

Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.041787 seconds and 4 git commands to generate.