Mathieu Desnoyers [Tue, 6 Feb 2018 20:40:19 +0000 (15:40 -0500)]
Fix: report truncated files while reading
When index files are available, this ensures we report the issue
properly before mapping a truncated packet rather than hitting a
SIGBUS.
For traces without index files, remove the check that was done at
index creation, and use the new check done when mapping the packet
instead. This ensures babeltrace can print stream data prior to the
truncated packet for this stream.
TODO: What is _not_ done in this patch is changing handling of truncated
packets: this should be treated as a warning rather than an error, so
processing of other streams continue.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
CC: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 1 Feb 2018 03:02:35 +0000 (22:02 -0500)]
Update version to v1.4.4
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 1 Feb 2018 02:24:10 +0000 (21:24 -0500)]
Fix: signedness error in python complements
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Sun, 23 Aug 2015 03:50:56 +0000 (20:50 -0700)]
Fix: handle packet_seek errors
This is needed to correctly handle SIGINT in live view mode. Without
handling this situation correctly, we can often see the following issue
upon SIGINT:
[error] Stream
18446744073709551615 is not declared in metadata.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Thu, 23 Nov 2017 23:43:52 +0000 (18:43 -0500)]
Fix: prevent calling adding the same trace recursively
add_one_trace may need to fetch new streams, which may lead to adding
new traces to the ctf_traces hashtable and recursively calling
add_one_trace. This is problematic because we cannot modify a hashtable
we are iterating on, and we cannot perform twice the add_one_trace for
the same trace.
This fix, ensures this situation cannot happen, by checking if the
number of traces changed during the iteration and by making sure a trace
is considered in_use as soon as we enter the add_one_trace function.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
Tested-by: Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Thu, 23 Nov 2017 23:00:14 +0000 (18:00 -0500)]
Fix: Make sure we have all the metadata streams before adding new traces
The add_one_trace function needs to have a metadata stream for all the
known traces. If it does not, we could end up in situations where we
fetch new streams while adding a trace which causes a lot of problems.
Now we ensure we have all the metadata streams before adding the traces.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
Tested-by: Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Thu, 23 Nov 2017 21:54:44 +0000 (16:54 -0500)]
Add missing debugging information in the live plugin
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 25 Aug 2015 18:41:04 +0000 (14:41 -0400)]
Fix: set stream id in HUP case
In the case where a stream is closed when we get its first index, we
still need a valid stream_id to assign it in the right stream (channel).
In this case, it is not useful afterwards, but the debug output has the
right value instead of -1ULL.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 25 Aug 2015 16:35:27 +0000 (12:35 -0400)]
Fix: Use list rather than ptr array for trace streams
This fixes stream removal on HUP.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 25 Aug 2015 12:24:13 +0000 (08:24 -0400)]
Fix: leak of streams
Streams can be added when we attach to a session and if new streams are
added while the session is running. We were overriding the session
streams array in get_new_stream, so at teardown we could leak the
streams that were added before that call. We now keep a list of all the
streams in the session and add each stream in that list in both code
paths.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 25 Aug 2015 12:16:37 +0000 (08:16 -0400)]
Fix: handle 0 session case in ask new streams
If all sessions are closed by the time we ask for new streams, we could
end up looping forever waiting for new streams, so we now check we are
still waiting for something before looping.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 19 Aug 2015 17:47:53 +0000 (10:47 -0700)]
Fix: break loop on getting metadata error
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 18 Aug 2015 21:27:07 +0000 (14:27 -0700)]
Fix: return error on ask_new_stream when should quit
Otherwise, the caller will try to continue adding partially set streams
to the trace.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Fri, 14 Aug 2015 18:55:11 +0000 (14:55 -0400)]
Fix: don't access missing ctf trace when getting metadata
We can get metadata when still in the trace open functions, in which
case the ctf trace is not allocated nor available yet. This fixes a
segmentation fault in stress-test.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 9 Jan 2018 22:12:54 +0000 (17:12 -0500)]
Fix: lttng-live discarded event count after inactivity
When a stream is inactive, the consumer produces fake indexes which are
beacons to let the viewer know a stream has not produced any data up to
a certain timestamp. These beacon are actually real packet indexes with
all the fields set to 0 except for the timestamp_end. Currently we keep
these beacons just like we keep real indexes. The problem is that when
we switch packet, we compare the events_discarded field in the index we
just received with the same field in the previous index. In the case
where a stream has been inactive, we have received inactivity beacons,
and set the discarded_event field to 0, so the difference with the next
real index might be wrong.
In fact, since the inactivity beacons are only used to push the
timestamp end of a stream, we don't need to keep them and we actually
need to keep most of the data from the real previous index. So we now
copy the entire prev_index into the cur_index when we receive an
inactivity beacon. We could refactor the code to avoid performing the
pointer swap of cur and prev indexes, but this implies a redesign of
much of the packet switching code which would affect other code paths.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Mon, 13 Nov 2017 20:06:29 +0000 (15:06 -0500)]
Fix: timegm compat on Solaris
On Solaris 11 setting TZ to an empty string before calling mktime will
in some circumstances do the conversion in localtime instead of UTC as
expected.
Replace the empty string by "UTC".
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 28 Sep 2017 14:00:32 +0000 (10:00 -0400)]
lttng-live: print discarded event and packet lost warnings on stderr
Reported-by: Liguang Li <liguang.lee6@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 4 Aug 2017 17:06:31 +0000 (13:06 -0400)]
Update version to v1.4.3
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Marie Martin [Fri, 4 Aug 2017 16:40:35 +0000 (12:40 -0400)]
Fix: unknown variable name in Python writer
Signed-off-by: Marie Martin <marie.martin@etu.utc.fr>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jonathan Rajotte [Mon, 24 Jul 2017 20:06:18 +0000 (16:06 -0400)]
Fix live-comm: only apply retry timeout for already seen inactive indexes.
Tested-by: Anton Smyk <anton.smyk@itiviti.com>
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jonathan Rajotte [Mon, 24 Jul 2017 20:06:17 +0000 (16:06 -0400)]
Fix live-comm: merge TCP socket write-write sequence in a single write
The live protocol implementation is often sending content
on TCP sockets in two separate writes. One to send a command header,
and the second one sending the command's payload. This was presumably
done under the assumption that it would not result in two separate
TCP packets being sent on the network (or that it would not matter).
Delayed ACK-induced delays were observed [1] on the second write of the
"write header, write payload" sequence and result in problematic
latency build-ups for live clients connected to moderately/highly
active sessions.
Fundamentaly, this problem arises due to the combination of Nagle's
algorithm and the delayed ACK mechanism which make write-write-read
sequences on TCP sockets problematic as near-constant latency is
expected when clients can keep-up with the event production rate.
In such a write-write-read sequence, the second write is held up until
the first write is acknowledged (TCP ACK). The solution implemented
by this patch bundles the writes into a single one [2].
[1] https://github.com/tbricks/wireshark-lttng-plugin
Basic Wireshark dissector for lttng-live by Anto Smyk from Itiviti
[2] https://lists.freebsd.org/pipermail/freebsd-net/2006-January/009527.html
Reported-by: Anton Smyk <anton.smyk@itiviti.com>
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Fri, 2 Jun 2017 15:56:44 +0000 (11:56 -0400)]
Fix: use LDFLAGS instead of LIBS for python bindings
Turns out that contrary to what is documented some versions of distutils
don't honor the LIBS variable, use LDFLAGS instead.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Fri, 26 May 2017 18:25:37 +0000 (14:25 -0400)]
Fix: Add missing LIBS to python bindings
Also move includes to CPPFLAGS.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 2 Nov 2016 06:01:30 +0000 (02:01 -0400)]
ax_lib_elfutils -> bt_lib_elfutils
`ax` is a prefix for the GNU Autoconf Archive. `ax_lib_elfutils`
should be namespaced within the project here, with the `bt_` prefix.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 2 Nov 2016 05:41:13 +0000 (01:41 -0400)]
m4/ax_lib_elfutils.m4: use m4_default() for optional args.
The current macro code does not work because, if you provide 4
arguments to the macro, then `true_action` is not defined (but
it should be: it's the third argument).
Use m4_default() here to expand to a default value if the
argument does not exist.
Also use [:] instead of [] (good practice, safer for shells).
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 2 Nov 2016 05:40:12 +0000 (01:40 -0400)]
m4/ax_lib_elfutils.m4: add cache variable
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Francis Deslauriers [Tue, 11 Apr 2017 19:27:37 +0000 (15:27 -0400)]
Build Python bindings with distutils for consistent installs
v5: Manually load shared objects used by the Babeltrace Python module
This patch changes the build system used to compile and install the
Python Bindings. Distutils is used to find the right install directory.
When the install directory generated from the install prefix is not in
the Python search path (PYTHONPATH), we print a warning explaining what
can be done to include it.
It uses Distutils which is part of the Python standard library.
Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Francis Deslauriers [Fri, 26 May 2017 13:20:41 +0000 (09:20 -0400)]
Set the minimum Python version to 3.0
Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Fri, 17 Mar 2017 20:15:23 +0000 (16:15 -0400)]
Fix: text output missing separator when printing the domain
With the "-f all" option, we expect to see
<hostname>:<domain>:<loglevel>, but instead we see
<hostname><domain>:<loglevel>.
Judging from the pattern of the other printed fields, the check for
"dom_print" variable seems to be missing when printing the domain.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 6 Jan 2017 20:31:38 +0000 (15:31 -0500)]
Update version to v1.4.2
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 13 Dec 2016 17:17:10 +0000 (12:17 -0500)]
Fix: perform an explicit stdout flush in live even on empty packets
This ensures that babeltrace makes the content of live buffers
visible even if the data packets received are empty.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 1 Dec 2016 23:14:09 +0000 (18:14 -0500)]
Update version to v1.4.1
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Simon Marchi [Sun, 19 Jun 2016 15:14:29 +0000 (11:14 -0400)]
debug info: Call register_event_debug_infos for all events
The register_event_debug_infos function is responsible for setting the
debug_info_src field of the struct definition_integer representing the
"ip" context field. This pointer is used later to print the
source and binary location of the tracepoint.
Currently, it's not called for the events that have a special meaning
for the debug info analysis (statedump start, dlopen, bin_info, etc).
This means that for these events, the debug_info_src pointer keeps the
value of the previous event from that stream (since the ip field is in
stream event context, there is one instance per stream), which leads to
wrong information and/or crash. A crash can happen when the debug info
structures are cleared because a statedump start is encountered.
debug_info_src becomes a stale pointer and babeltrace tries to print a
string in free memory.
The fix is to call register_event_debug_infos for all events, which will
always set debug_info_src properly. The events used to do the debug
info analysis are still regular events and have their own location
information.
The trace in bug #1018 shows a crash caused by this issue.
Here's an example of wrong info from the same trace:
... lttng_ust_statedump:bin_info: { cpu_id = 1 }, { vpid = 28991, ip = 0x7FD26665657D, debug_info = { bin = "libX11.so.6.3.0+0x213fa" } }, ...
... lttng_ust_statedump:build_id: { cpu_id = 1 }, { vpid = 28991, ip = 0x7FD266656656, debug_info = { bin = "libX11.so.6.3.0+0x213fa" } }, ...
We can see that the ip values are different, but the debug info refers
to the same location, which is impossible. Here's the result with this
patch applied.
... lttng_ust_statedump:bin_info: { cpu_id = 1 }, { vpid = 28991, ip = 0x7FD26665657D, debug_info = { bin = "liblttng-ust.so.0.0.0+0x3557d", func = "trace_bin_info_cb+0xfa" } }, ...
... lttng_ust_statedump:build_id: { cpu_id = 1 }, { vpid = 28991, ip = 0x7FD266656656, debug_info = { bin = "liblttng-ust.so.0.0.0+0x35656", func = "trace_build_id_cb+0xbc" } }, ...
which seems more reasonnable.
Fixed #1018
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 25 Jul 2016 19:16:18 +0000 (15:16 -0400)]
Typo: configure.ac implemenation -> implementation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Samuel Martin [Wed, 1 Jun 2016 19:56:32 +0000 (21:56 +0200)]
configure: fix uuid support detection on static build
This change adds uuid detection using pkg-config helper before falling
back on the standard AC_CHECK_LIB detection for platforms missing
pkg-config.
AC_CHECK_LIB function achieves its test by trying to link against the
requested library, without taking care of its dependency
requirements/flags that may differ between different targets.
Therefore, in case of static build, it can fail on the uuid detection
like [1], because the uuid's dependency flags (regarding gettext) are
missing.
Instead, using pkg-config to do the check will take care of getting and
setting all required flags.
This issue [1] has been triggered on Buildroot farms.
[1] http://autobuild.buildroot.net/results/43b/
43b98ddf9eb44152ed9ac4a98d887af14831d8da/build-end.log
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 7 Jun 2016 16:09:27 +0000 (12:09 -0400)]
Tests: no substitution needed for multi-trace intersection test
The use of AC_CONFIG_FILES on with src == dest causes the source
file to be deleted on make distclean.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 6 Jun 2016 18:26:09 +0000 (14:26 -0400)]
Update version to v1.4.0
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 3 Jun 2016 11:21:29 +0000 (07:21 -0400)]
Tests: dereference of NULL pointer on allocation failure
Reported by Coverity as:
CID
1354904 (#1 of 1): Dereference null return value (NULL_RETURNS)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 3 Jun 2016 11:17:42 +0000 (07:17 -0400)]
Tests: abort dwarf test on open() failure
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 17:40:25 +0000 (13:40 -0400)]
Fix: lttng-live does not set a trace descriptor
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 31 May 2016 11:31:55 +0000 (07:31 -0400)]
Tests: Add missing --merge LOG_DRIVER_FLAGS
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Mon, 30 May 2016 20:39:02 +0000 (16:39 -0400)]
Fix: strerror_r behavior is glibc specific
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Mon, 30 May 2016 20:39:01 +0000 (16:39 -0400)]
sys/param.h is required for MAXNAMLEN on musl libc
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 30 May 2016 18:39:27 +0000 (14:39 -0400)]
Fix: undefined bit shift operation when printing octal numbers
Reported by Coverity as:
CID
1355338 (#1 of 1): Bad bit shift operation (BAD_SHIFT)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 30 May 2016 14:22:45 +0000 (10:22 -0400)]
Fix: Wrong variable checked in bin_info_child_die_has_address
"contains", which is an output pointer, is used instead of the
local boolean that is set by the call to
bt_dwarf_die_contains_addr.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Tue, 17 May 2016 19:43:59 +0000 (15:43 -0400)]
Fix: Only close valid fds in is_valid_debug_file
Fixes coverity #
1354901 and #
1354902
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Tue, 17 May 2016 19:21:44 +0000 (15:21 -0400)]
Fix: Free die_name in bin_info_lookup_cu_function_name
Fixes coverity #
1354905
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Tue, 17 May 2016 19:09:03 +0000 (15:09 -0400)]
Fix: Don't dereference null ptr in error path
Fixes coverity #
1355339
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Thu, 19 May 2016 16:21:29 +0000 (12:21 -0400)]
Standardise spelling of debug info
Debug info being short for debugging information is two separate
words. Therefore, the debuginfo spelling is erroneous. Variables and
defines throughout the code and build system should therefore use
'debug_info' or 'DEBUG_INFO', whereas command-line options and file
names should use the 'debug-info' form. In free form text
(i.e. comments and documentation), 'debug info' should be used, or the
long form 'debugging information'.
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Thu, 19 May 2016 15:50:06 +0000 (11:50 -0400)]
Fix: typo in --disable-debug-info in configure error message
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 25 May 2016 13:37:39 +0000 (09:37 -0400)]
Docs: change --clock-raw to --clock-cycles
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 19 May 2016 22:24:23 +0000 (18:24 -0400)]
Fix: segmentation fault with multi-trace having non-correlated clocks
This bugfix is extracted from commit
commit
61cf588beae752e5ddfc60b6b5310f769ac9e852
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: Tue Feb 9 13:27:24 2016 -0500
Handle negative time and offset from Epoch
Which was fixing this issue, amongst other things.
[ This fix should be applied to Babeltrace stable 1.3 and 1.4 only. ]
[ This v2 patch removes error checking that was introduced in v1. Since
the callees don't distinguish between -ENOENT and -EINVAL errors,
we don't know if we need to error out or not. Keep the original
1.x behavior (no error checking). ]
Fixes: #790
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 13 May 2016 21:28:06 +0000 (17:28 -0400)]
Update version to v1.4.0-rc1
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 13 May 2016 21:10:38 +0000 (17:10 -0400)]
Display binary location even if source and symbol lookups fail
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 11 May 2016 19:45:46 +0000 (15:45 -0400)]
Tests: Multi-trace stream intersection test
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 12 May 2016 16:43:22 +0000 (12:43 -0400)]
Move Python bindings to babeltrace subfolder
This change reflects the arborescence used to install Babeltrace's
python bindings and allows Babeltrace's tests to use the normal
module name namespace.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 12 May 2016 16:43:22 +0000 (12:43 -0400)]
bootstrap: Standardize on autoreconf -vi
Don't overwrite already generated files.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 11 May 2016 17:45:10 +0000 (13:45 -0400)]
Change behaviour of stream-intersection with multiple traces
The stream-intersection currently results in the reading of
the intersection of every stream, in every trace of a Trace
Collection.
Since reading a TraceCollection returns the union of its traces,
the behaviour of this option is changed so that it returns the
union of each trace's individual "active" section, that is the
section for which all streams are active.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Fri, 6 May 2016 20:08:57 +0000 (16:08 -0400)]
Fix: ctf-text: signed base 8, 16 printout
Base 16 signed integer printout is buggy for 64-bit length: a shift of
64-bit is undefined.
Change printout of base 8 signed integer to match what is done for
base 16.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 28 Oct 2014 16:33:15 +0000 (12:33 -0400)]
Fix: respect signed integers' length when printing in hex base
Make sure we don't print a full 64-bit sign-extended value
when printing a negative integer in hexadecimal base.
Fixes #848
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Fri, 6 May 2016 17:39:51 +0000 (13:39 -0400)]
Fix: debug-info feature enable/disable
Explicitly enabling the debug-info feature should not disable the
feature.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 5 Nov 2015 17:51:54 +0000 (12:51 -0500)]
Port: Add OSX mman.h compat
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Alexis Martin [Thu, 5 Nov 2015 17:51:53 +0000 (12:51 -0500)]
Port: Add OSX endian.h compat
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 5 Nov 2015 17:51:55 +0000 (12:51 -0500)]
Port: Add OSX libuuid compat
OSX has the libuuid symbols built in the system libraries.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Thu, 5 May 2016 15:50:24 +0000 (11:50 -0400)]
Fix: swapped libelf and libdw names in configure error message
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 4 May 2016 18:36:19 +0000 (14:36 -0400)]
Don't use the .so extension on test assets
Some packaging systems, such as dpkg-source in native mode used by
Debian's daily build system, will filter out files considered unclean
prior to the build. This behavior causes our test assets to be deleted
which, subsequently, fails the make check.
Since we do not require the .so extension and these files should be
treated as blobs, we rename them to "_so".
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 4 May 2016 17:02:49 +0000 (13:02 -0400)]
Fix: warnings on Solaris10
Cast values to uint64_t before passing them to htobe64() because
the implementation on Solaris10 uses bitshifts and will complain
when passed 32bits values.
This fixes multiple warnings like:
lttng-live-comm.c:169:2: warning: left shift count >= width of type
cmd.data_size = htobe64(sizeof(connect));
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 4 May 2016 14:56:27 +0000 (10:56 -0400)]
Add missing generated tests to gitignore
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 5 May 2016 15:43:45 +0000 (11:43 -0400)]
Fix: report error when lttng-live is provided with an IPv6 address
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 3 May 2016 02:46:28 +0000 (22:46 -0400)]
Fix: overflow of signed integer results in undefined behaviour
The expression "min_value = -((int64_t)1 << (size - 1))"
will result in a signed integer overflow when size is 64
((1ULL << 63) > LONG_MAX).
Note that larger sizes are unsupported and checked for in the setter.
Signed overflows result in undefined behaviour and llvm takes
advantage of this to optimize away the range check
"if (value < min_value || value > max_value) {"
Surprisingly, this was not catched by GCC, Coverity, scan-build or
cppcheck.
The fix consists in computing both bounds using an unsigned long long
type and, in the case of the lower bound, negating it (resulting in a
long long).
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 May 2016 20:27:58 +0000 (16:27 -0400)]
Fix: potential close() of uninitialized elf_fd
elf_fd is uninitialized whenever bin is NULL.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 May 2016 20:39:20 +0000 (16:39 -0400)]
Fix: use of spaces instead of tabs in babeltrace.i.in
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 May 2016 20:02:43 +0000 (16:02 -0400)]
Set version to 1.4.0-pre
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 May 2016 19:26:50 +0000 (15:26 -0400)]
Clean-up: add missing new line after end of function
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 May 2016 19:26:32 +0000 (15:26 -0400)]
Clean-up: remove extra newline in bin-info.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 May 2016 19:26:08 +0000 (15:26 -0400)]
Clean-up: fix comment style in bin-info.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 29 Apr 2016 22:55:12 +0000 (18:55 -0400)]
Add tap-driver.sh from automake
Solaris 11's automake does not include tap-driver.sh.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Fri, 29 Apr 2016 22:12:42 +0000 (18:12 -0400)]
Tests: skip certain bin-info tests on failure to prevent segfault
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 27 Apr 2016 21:11:08 +0000 (17:11 -0400)]
Typo: succesful* -> successful*
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Fri, 29 Apr 2016 22:13:39 +0000 (18:13 -0400)]
Tests: strip ELF symbols from debuginfo-data executables with separate DWARF
Stripping the symbols prevents the framework from falling back to ELF
lookup should the separate DWARF files be missing, which would cause
tests to succeed when they should fail.
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Mon, 2 May 2016 19:50:02 +0000 (15:50 -0400)]
Python bindings: add has_intersection property to TraceCollection
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Mon, 2 May 2016 19:46:48 +0000 (15:46 -0400)]
Python bindings: make intersect_mode read-only property
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Fri, 29 Apr 2016 21:05:31 +0000 (17:05 -0400)]
Tests: Add missing debuginfo files to dist
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Fri, 29 Apr 2016 20:58:14 +0000 (16:58 -0400)]
Use tar-ustar format for dist
This is required to support file names longuer than 99 characters
when generating the dist tarball, which we require because of the
sphinx theme files in the python bindings documentation.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Fri, 29 Apr 2016 18:35:06 +0000 (14:35 -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: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 28 Apr 2016 20:15:14 +0000 (16:15 -0400)]
Cleanup test scripts
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 28 Apr 2016 16:57:03 +0000 (12:57 -0400)]
Fix: Don't clean test scripts
Test scripts are generated by configure, not make. Therefore, we do
not want a make clean to remove them. Let automake handle dist and
clean.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Simon Marchi [Thu, 28 Apr 2016 16:43:37 +0000 (12:43 -0400)]
Fix: Make test_dwarf and test_bin_info tests work out-of-tree
When building out of tree, these tests fail to find the test data.
This patch makes them (their _complete wrappers, actually) generated
by Autoconf, so the proper path to the test data (which is in the
source directory) can be written.
We can also get rid of SCRIPT_LIST and it's custom rules.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 28 Apr 2016 16:38:20 +0000 (12:38 -0400)]
Handle test_ctf_writer_complete like the other tests scripts
Even if test_ctf_writer_complete doesn't require any substitutions,
handle it like the other test scripts which will be less error prone
and will allow to remove all the SCRIPT_LIST custom rules.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Simon Marchi [Thu, 28 Apr 2016 02:52:19 +0000 (22:52 -0400)]
Fix: let automake handle CLEAN and DIST
Files test_seek_empty_packet and test_seek_big_trace are generated by
configuring, not by making. Therefore, we do not want a make clean to
remove them. Otherwise, doing...
* make
* make clean
* make
* make check
... fails.
Automake infers EXTRA_DIST and DISTCLEANFILES from AC_CONFIG_FILES.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Simon Marchi [Thu, 28 Apr 2016 02:52:18 +0000 (22:52 -0400)]
Fix: Remove test_seek_empty_packet and test_seek_big_trace from SCRIPT_LIST
Since these files are generated by autoconf, they shouldn't be included
in SCRIPT_LIST, which is the list of scripts to copy from the source
directory to the build directory. This gets rid of these warnings when
building out of tree:
cp: cannot stat '/home/simark/src/babeltrace/tests/lib/test_seek_big_trace': No such file or directory
cp: cannot stat '/home/simark/src/babeltrace/tests/lib/test_seek_empty_packet': No such file or directory
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 28 Apr 2016 22:07:48 +0000 (18:07 -0400)]
configure: introduce new macro AX_LIB_ELFUTILS
elfutils has only just started providing pkg-config metadata
which makes the current version check unreliable. This introduces
a new M4 macro which checks elfutils' version using the
_ELFUTILS_PREREQ macro (defined in elfutils/version.h).
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Wed, 27 Apr 2016 21:14:14 +0000 (17:14 -0400)]
Docs: fix typos in babeltrace-log(1) manpage
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Antoine Busque [Wed, 27 Apr 2016 20:58:30 +0000 (16:58 -0400)]
Docs: update debuginfo doc
Update the output format in the examples and document the new
--debug-info-target-prefix and --debug-info-full-path command line
options.
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Sat, 23 Apr 2016 19:43:15 +0000 (15:43 -0400)]
Add configure report
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 28 Apr 2016 18:57:08 +0000 (14:57 -0400)]
configure: check for elfutils (libelf and libdw) >= 0.154
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 28 Apr 2016 16:09:58 +0000 (12:09 -0400)]
Set the minimal version of elfutils to 0.154
elfutils 0.154 is required since it is the first release to
include commit
5479725 (dwarf_highpc: Handle DW_AT_high_pc being
a constant offset from DW_AT_low_pc).
This is fix is required to read DwARF information produced by
"modern" (post-2012) GCCs which make use of this DWARF4
capability when generating position independant code. The binaries
provided as part of the test suite make use of this feature. Hence,
tests will fail with older elfutils versions.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Sat, 23 Apr 2016 18:55:58 +0000 (14:55 -0400)]
Doc: Add elfutils to README
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 27 Apr 2016 19:21:00 +0000 (15:21 -0400)]
Fix: return -1 on bin_info_lookup_dwarf_function_name failure
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 27 Apr 2016 19:01:15 +0000 (15:01 -0400)]
Harmonize spelling of debug-info
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
This page took 0.042989 seconds and 4 git commands to generate.