Jérémie Galarneau [Thu, 25 Feb 2016 17:27:43 +0000 (12:27 -0500)]
Clarify bt_component_sink_handle_notification_cb semantics
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 25 Feb 2016 17:26:26 +0000 (12:26 -0500)]
Clarify bt_component_destroy_cb semantics
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 25 Feb 2016 17:26:00 +0000 (12:26 -0500)]
Clean-up in babeltrace.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 25 Feb 2016 17:25:39 +0000 (12:25 -0500)]
Leak fix
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 25 Feb 2016 01:37:39 +0000 (20:37 -0500)]
Add bt_component_sink_register_notification_type
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 24 Feb 2016 23:17:20 +0000 (18:17 -0500)]
Initialize component class init callback
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 24 Feb 2016 23:02:00 +0000 (18:02 -0500)]
Remove bt_component_set_error_stream
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 24 Feb 2016 23:01:34 +0000 (18:01 -0500)]
Warn on duplicate component class registration
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 24 Feb 2016 22:30:06 +0000 (17:30 -0500)]
Don't load plug-ins recursively by default
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 24 Feb 2016 22:27:37 +0000 (17:27 -0500)]
Bump library version to 2.0
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 24 Feb 2016 09:41:05 +0000 (04:41 -0500)]
Install plugins in $(libdir)/babeltrace/plugins
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 24 Feb 2016 08:52:08 +0000 (03:52 -0500)]
Plugins: rename reader -> fs, and symbols.c to plugin.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 24 Feb 2016 08:44:46 +0000 (03:44 -0500)]
Plugins: remove unnecessary stuff in Makefile.am files
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 24 Feb 2016 06:23:56 +0000 (01:23 -0500)]
Move plugin system sources to lib/plugin-system
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 24 Feb 2016 02:32:11 +0000 (21:32 -0500)]
Strip babeltrace.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 24 Feb 2016 00:49:04 +0000 (19:49 -0500)]
Add base plug-in skeletons
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 17 Feb 2016 22:01:31 +0000 (17:01 -0500)]
List detected component classes
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 16 Feb 2016 20:10:34 +0000 (15:10 -0500)]
Fix header guard
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 16 Feb 2016 19:27:45 +0000 (14:27 -0500)]
Component creation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 15 Feb 2016 19:46:56 +0000 (14:46 -0500)]
Introduce public component class interface
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 15 Feb 2016 16:44:04 +0000 (11:44 -0500)]
Remove specialized reference counting functions
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 9 Feb 2016 22:54:21 +0000 (17:54 -0500)]
Plugin symbol resolving fix
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 26 Jan 2016 20:44:39 +0000 (15:44 -0500)]
Coding style fix
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 Jan 2016 18:59:10 +0000 (13:59 -0500)]
Build fix
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 Jan 2016 17:20:27 +0000 (12:20 -0500)]
text plugin test
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 4 Sep 2015 19:24:38 +0000 (15:24 -0400)]
Create sink plugins
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Sat, 15 Aug 2015 13:49:06 +0000 (09:49 -0400)]
Discover plugins in converter.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Sat, 15 Aug 2015 15:18:18 +0000 (11:18 -0400)]
Adapt plugin system to use unified reference counting
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 23 Jul 2015 20:59:17 +0000 (16:59 -0400)]
Add ctf-text entry point initialization comment
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 23 Jul 2015 20:54:47 +0000 (16:54 -0400)]
ctf-text plugin stub
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 23 Jul 2015 20:31:33 +0000 (16:31 -0400)]
Resolve plugin symbols
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 23 Jul 2015 17:45:47 +0000 (13:45 -0400)]
Introduce bt_plugin and bt_component_class
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 17 Jul 2015 15:32:13 +0000 (11:32 -0400)]
Load plugins and components
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jul 2015 21:00:24 +0000 (17:00 -0400)]
Start of bt_component_factory implementation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 13 Jul 2015 15:46:46 +0000 (11:46 -0400)]
Docs: plugin-system.h documentation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 13 Jul 2015 01:56:53 +0000 (21:56 -0400)]
Move initialization of components to init functions
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Sun, 12 Jul 2015 19:09:01 +0000 (15:09 -0400)]
Missing Makefiles
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 10 Jul 2015 21:15:17 +0000 (17:15 -0400)]
Add iterator and source implementations
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jul 2015 20:04:34 +0000 (16:04 -0400)]
Remove unneeded __cplusplus externs from source internal header
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jul 2015 19:56:07 +0000 (15:56 -0400)]
Implementation of bt_component_sink_handle_notification
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jul 2015 19:48:42 +0000 (15:48 -0400)]
Build fix and sink implementation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jul 2015 15:24:56 +0000 (11:24 -0400)]
Rename plugin.c to component.c in Makefile
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jul 2015 15:24:12 +0000 (11:24 -0400)]
Rename plugin implementation to component
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 7 Jul 2015 20:37:47 +0000 (16:37 -0400)]
Rename to separate the plug-in and component notions
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 7 Jul 2015 20:16:34 +0000 (16:16 -0400)]
Rename plugin-internal.h to component-internal.h
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 7 Jul 2015 14:43:32 +0000 (10:43 -0400)]
Missing notification parameter in bt_component_sink_handle_notification
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 7 Jul 2015 00:48:17 +0000 (20:48 -0400)]
More modifications
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 3 Jun 2015 08:39:55 +0000 (10:39 +0200)]
Integrate modifications after plugin review
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 26 May 2015 17:58:49 +0000 (13:58 -0400)]
Add options to ctf-text plugin
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 May 2015 21:13:44 +0000 (17:13 -0400)]
Implement ctf text output plug-in stub
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 May 2015 19:59:16 +0000 (15:59 -0400)]
Build system: build reader plug-in stub
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 May 2015 19:10:48 +0000 (15:10 -0400)]
Add initial plug-in stubs
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 May 2015 19:06:53 +0000 (15:06 -0400)]
More build fixes
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 21 May 2015 18:09:38 +0000 (14:09 -0400)]
build fixes
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 20 May 2015 21:47:59 +0000 (17:47 -0400)]
remove extra line in reader
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 20 May 2015 21:22:17 +0000 (17:22 -0400)]
Implement source plugin base
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 20 May 2015 17:54:01 +0000 (13:54 -0400)]
Error stream is now an attribute of the base plugin class
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 20 May 2015 17:53:34 +0000 (13:53 -0400)]
Implement plugin base class
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 20 May 2015 02:32:07 +0000 (22:32 -0400)]
Start ctf reader implementation stub
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 19 May 2015 20:18:35 +0000 (16:18 -0400)]
Add headers to build system
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 19 May 2015 16:35:08 +0000 (12:35 -0400)]
Notification interfaces
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 19 May 2015 16:11:50 +0000 (12:11 -0400)]
Add notification documentation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 19 May 2015 15:38:06 +0000 (11:38 -0400)]
iterator documentation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 15 May 2015 17:44:38 +0000 (13:44 -0400)]
Add notification iterator documentation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 15 May 2015 15:14:17 +0000 (11:14 -0400)]
source interface documentation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 15 May 2015 15:14:06 +0000 (11:14 -0400)]
plugin-system.h documentation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 14 May 2015 19:49:21 +0000 (15:49 -0400)]
Add missing header plugin-system.h
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 13 May 2015 22:32:50 +0000 (18:32 -0400)]
Minor fixes
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 13 May 2015 22:13:02 +0000 (18:13 -0400)]
Add javadoc documentation of plugin-lib interface
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 13 May 2015 22:06:45 +0000 (18:06 -0400)]
Javadoc fixes
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 13 May 2015 21:53:12 +0000 (17:53 -0400)]
Comment plug-in error codes
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 13 May 2015 21:47:23 +0000 (17:47 -0400)]
Document plug-in interface
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 13 May 2015 20:01:07 +0000 (16:01 -0400)]
Plug-in system update
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 6 Mar 2015 22:49:52 +0000 (17:49 -0500)]
Add discarded events notification type
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 4 Mar 2015 17:24:24 +0000 (12:24 -0500)]
Plug-in API corrections
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 4 Mar 2015 17:24:08 +0000 (12:24 -0500)]
Reader plugin skeleton
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 3 Mar 2015 17:07:52 +0000 (12:07 -0500)]
Add plugin base implementation
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 2 Mar 2015 21:49:20 +0000 (16:49 -0500)]
Add plugin interface to build system
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 3 Feb 2015 14:56:45 +0000 (09:56 -0500)]
Initial plug-in interface draft
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 16:14:43 +0000 (12:14 -0400)]
Port: Add glib g_mkdtemp to mkdtemp wrapper
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 16:14:42 +0000 (12:14 -0400)]
Port: Use glib g_mkdir
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 00:32:29 +0000 (20:32 -0400)]
Cleanup: bt namespace for compat glib
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 00:32:30 +0000 (20:32 -0400)]
Cleanup: bt namespace for compat memstream.h
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 00:32:28 +0000 (20:32 -0400)]
Cleanup: bt namespace for compat timegm
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 00:32:27 +0000 (20:32 -0400)]
Cleanup: bt namespace for compat strerror_r
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 00:52:21 +0000 (20:52 -0400)]
Use glib portable macros to convert gpointer to int
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>
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 [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>
Mathieu Desnoyers [Thu, 6 Oct 2016 19:36:03 +0000 (15:36 -0400)]
Fix: documentation: output plugin is called ctf-metadata
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 15 Sep 2016 22:47:56 +0000 (18:47 -0400)]
Fix: Use autoconf provided grep in test_formats
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Nathan Lynch [Thu, 18 Aug 2016 17:10:28 +0000 (12:10 -0500)]
babeltrace: add test for babeltrace --list
This test simply checks the converter's list of supported formats.
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 14 Sep 2016 17:42:03 +0000 (13:42 -0400)]
Add empty plug-in hooks to prevent their elimination by the linker
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Nathan Lynch [Fri, 5 Aug 2016 20:06:43 +0000 (15:06 -0500)]
Remove useless PACKAGE_LIBS substitution
PACKAGE_LIBS isn't referred to anywhere in the project so remove this
dead code from configure.ac.
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Nathan Lynch [Fri, 5 Aug 2016 19:59:42 +0000 (14:59 -0500)]
Do not use g_quark_from_static_string in unloadable code
The GLib Quark documentation says that g_quark_from_static_string:
"... can only be used if the string will continue to exist until the
program terminates. It can be used with statically allocated
strings in the main program, but not with statically allocated
memory in dynamically loaded modules."
https://developer.gnome.org/glib/stable/glib-Quarks.html#g-quark-from-static-string
Convert call sites of g_quark_from_static_string to
g_quark_from_string in code that is potentially unloadable. Call
sites in the babeltrace main program remain unchanged.
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Simon Marchi [Sun, 19 Jun 2016 02:54:52 +0000 (22:54 -0400)]
CTF writer: Add function to add an integer environment field value
From the Python API, it's only possible to set an environment field
value as a string (whatever you pass, it gets stringified). This patch
adds a function to the CTF writer to allow setting an integer (int64_t)
environment field, and then exposes it in the Python interface.
The Python method Writer.add_environment_field now uses the type of the
passed value to determine which underlying C function to call (string or
integer). Any other type is rejected. This causes a behavior change,
since passing an integer value to add_environment_field used to produce
a string version of the value, whereas it will now produce an integer
version. However, I think it will now behave more closely to the
expectation of a lambda user.
Example:
w.add_environment_field("foo", 2)
Result before:
env {
foo = "2";
};
Result after:
env {
foo = 2;
};
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Simon Marchi [Sun, 19 Jun 2016 02:54:51 +0000 (22:54 -0400)]
python: Add stream event context support
This patch adds the possibility to get/set the event context type of a
stream class and set the stream context value of an event from Python.
From my experience, the value setter (Event.stream_context.setter) is
not so useful, since it looks like the context is already instanciated
when you create the event. So in order to set the values in it, you
only need to get the existing instance and set its fields. There is no
need to to re-assign the stream context instance to the event. I still
put it there for completeness.
I added an example of the usage to the existing CTF writer Python
example.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
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>
This page took 0.0509 seconds and 4 git commands to generate.