From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Fri, 20 May 2016 20:24:23 +0000 (UTC) Subject: [lttng-dev] [RELEASE] LTTng-UST 2.8.0 (Linux user-space tracer) Message-ID: <11624783.15108.1463775863434.JavaMail.zimbra@efficios.com> Hi, This is the end of the release candidate cycle for LTTng 2.8, with the announcement of the 2.8.0 stable version! LTTng-UST, the Linux Trace Toolkit Next Generation Userspace Tracer, is a low-overhead application tracer. The library "liblttng-ust" enables tracing of applications and libraries. The "Isseki Nicho" LTTng release name is a microbrew beer, following our usual theme. Its description: The result of a collaboration between "Dieu du Ciel!" and Nagano-based "Shiga Kogen", Isseki Nicho is a strong Imperial Dark Saison offering a rich roasted malt flavor combined with a complex fruity finish typical of Saison yeasts. Here are the new major features included in this release: --- Shared object base address dump for mapping event to source code --- If a user takes a UST trace and enables the "ip" and "vpid" contexts, and the binaries with debug information are available, it is now possible to infer the location in the source code (dubbed "source callsite") for UST trace events. Those contexts can be enabled by lttng using the following command: $ lttng add-context -u -t ip -t vpid In order to capture the load addresses of shared objects loaded with dlopen(), the application should be launched with: $ LD_PRELOAD="liblttng-ust-dl.so" There is currently a pull request open against Babeltrace (http://diamon.org/babeltrace) to add the mapping event to source code feature needed with this LTTng-UST feature: https://github.com/efficios/babeltrace/pull/30 Here is the produced Babeltrace output with this feature: [...] [19:53:41.648394410] (+0.000022616) colossus my_provider:my_first_tracepoint: { cpu_id = 2 }, { ip = 0x7F75AEDFB4D4, debug_info = { func = "foo", source_loc = "/home/efficios/example/libhello.c:7" }, vpid = 25577 }, { my_string_field = "hello, tracer", my_integer_field = 42 } [19:53:41.648423786] (+0.000029376) colossus my_provider:my_first_tracepoint: { cpu_id = 2 }, { ip = 0x7F75AEDFB5A6, debug_info = { func = "bar", source_loc = "/home/efficios/example/libhello.c:13" }, vpid = 25577 }, { my_string_field = "recoltes et semailles", my_integer_field = 57 } [19:53:41.648435726] (+0.000011940) colossus my_provider:my_other_tracepoint: { cpu_id = 2 }, { ip = 0x7F75AEDFB66B, debug_info = { func = "baz", source_loc = "/home/efficios/example/libhello.c:20" }, vpid = 25577 }, { some_field = 1729 } [...] The Trace Compass project master branch currently supports this mapping event to source code feature. It even allows to directly open the associated source files with a "goto source code" action. For more info, visit http://tracecompass.org . --- Java Application Contexts --- This new feature allows dynamic application contexts to be both saved to a trace and used as an event filtering criterion. An example showing how to define and populate Application Contexts is provided as part of LTTng-UST's examples. https://github.com/lttng/lttng-ust/blob/master/doc/examples/java-jul/ApplicationContextExample.java Application contexts can be added to a channel by using, for example: $ lttng add-context --jul -t '$app.retriever_name:context_name' They can also be used to filter events: $ lttng enable-event --jul my_application_event --filter '$app.retriever_name:context_name > 52' See the lttng-enable-event(1) and lttng-add-context(1) man pages for more information. Project website: http://lttng.org Documentation: http://lttng.org/docs Download link: http://lttng.org/download Changelog: 2016-05-20 (Bike-to-Work Day) lttng-ust 2.8.0 * Print DBG() message about compiler weak hidden symbol behavior * test: add test for gcc issue with weak hidden symbol on powerpc * Restrict Java context retriever names to a set of valid characters * Fix: Correctly compute Java agent list loggers response size * Add support for aarch64_be * Fix: Fix synchronization of LTTngAgent#dispose * Fix: Verify number of bytes contained in sessiond agent commands * Fix: Avoid potential null dereference with log4j loggers * Specify UTF-8 encoding for all Java agent commands * Fix: merge tap tests stdout and stderr * Documentation: ring buffer: SWITCH_FLUSH can be used when active * Fix: unchecked return value in trace_clock_read64_monotonic * Fix: portability: no arith on void pointer * Fix: add "has_build_id" and "has_debug_link" fields to debuginfo events * Fix: initialize build id and debug link flags to 0 * Tests: Add tap-driver.sh for automake < 1.12 * Tests: Replace prove by autotools tap runner * bootstrap: Standardize on autoreconf -vi * Harmonize bootstrap script across projects * lttng-ust(3): order environment variables * lttng-ust(3): fix syntax of env. variables section * lttng-ust(3): document $LTTNG_HOME * Fix: Java agent should use LTTNG_HOME * Fix: examples make distcheck failure * Cleanup: add static for internal symbols * Cleanup: Remove unused max() macros from ring_buffer_frontend.c * Use min_t/max_t macros in lttng-ust-elf.c * Tests: update ust-elf tests to reflect correct memsz computation * Fix: erroneous computation of ELF in-memory size * Make code and man pages share the same default values * Fix: remove NULL check of nonnull parameter in dlclose * Fix: endianness of integers received by filter -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com