Patrick Tasse [Fri, 20 Nov 2015 16:06:52 +0000 (11:06 -0500)]
tmf: Add check for ineffective setters in AbstractTimeGraphView
If these setters are called after the part control has been created,
they have no effect.
Change-Id: I34bab27624a98df122efd08546d1740d5d672fd8 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/60940 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Patrick Tasse [Tue, 17 Nov 2015 22:35:36 +0000 (17:35 -0500)]
tmf: Make call stack view extend AbstractTimeGraphView
Change-Id: I43c472c0512486e806bc1aa1db034d6268face5e Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/60667 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
However the returned List is not null-annotated, which means it gives a
warning if we want to save it to a @NonNull List<> reference.
It could be tempting to annotate Stream.collect() directly, however that
would be wrong: there is no guarantee that some shoddy Collector does
not return a null value.
Instead, annotate Collectors.toList(), toSet() and toCollection(), which
should cover for most common use cases.
Patrick Tasse [Wed, 18 Nov 2015 16:18:26 +0000 (11:18 -0500)]
tmf: Call synchingToTime in AbstractTimeGraphView when switching traces
When switching traces (or opening a trace for the first time) the method
synchingToTime should be called with the selection begin time, to
perform view-specific handling for the new selected time.
Change-Id: Ia1eaa248b7e6d9616bfc20375276dcc83527fb28 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/60736 Reviewed-by: Hudson CI
Matthew Khouzam [Tue, 5 May 2015 11:18:09 +0000 (07:18 -0400)]
analysis: Split up KernelStateProvider
Right now, the cpu number and threadid is looked up for each
event, this new architecture will only read the information
as need be. This should accelerate trace reading by about 5%,
also it is more intuitive, as each event has one file
describing what it does.
Change-Id: I0a2c4480b1532536727783e5470acb545f0a705b Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com> Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-on: https://git.eclipse.org/r/47150 Reviewed-by: Hudson CI
When we migrated to using the tracecompass-test-traces, we also stopped
downloading the ctf-testsuite using git. However those are not part of
tracecompass-test-traces. Oops!
Somehow the tests didn't complain so far, but it'd be better if they
actually ran.
Patrick Tasse [Wed, 11 Nov 2015 14:49:12 +0000 (09:49 -0500)]
ctf: Fix CtfTmfLostEvent time range does not use timestamp transform
When a timestamp transform or trace offset was set on the trace, the
lost event time range end time was not transformed, but the timestamp
and time range start time were.
Change-Id: Ie2e79b5e90e900bdaf2e7e8391868132bd632332 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/60136 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
lttng: Rename orphaned relayd test to TestApplication
This file is a test application that is not intented to be tested as a Junit
test but it is written as such for convenience. We use this while developping
the Live feature.
Patrick Tasse [Thu, 5 Nov 2015 17:50:26 +0000 (12:50 -0500)]
tmf: Add Lost Events marker event source and factory
A marker event source factory for Lost Events is enabled for all traces.
The marker event source can reuse a previously returned marker list if
the requested parameters are identical to the previous request.
The event types statistics state system is updated to add a new
attribute which is used to compute the time ranges that are covered by
at least one lost event time range.
Change-Id: I2479afc3f07deb363f5847f4816940010bae3e9e Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/59389 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Patrick Tasse [Fri, 30 Oct 2015 20:15:04 +0000 (16:15 -0400)]
tmf: Add TmfTraceAdapterFactory
Base class for a trace adapter factory. The factory creates a single
instance of each adapter type per trace, and disposes the adapter when
the trace is closed, if it is an instance of IDisposableAdapter.
Change-Id: Ieec69d17d0cff037f2df0c8dded14eef91db6f97 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/59388 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Patrick Tasse [Thu, 5 Nov 2015 15:43:41 +0000 (10:43 -0500)]
tmf: Support adjustment of time graph window range on range selection
When the selection range is modified and 'ensureVisible' is true, then
the window range will be centered on either the selection begin time (if
it has changed) otherwise on the selection end time, if that time is
outside of the current window.
This adjustment is now enabled in time graph views when the
TmfSelectionRangeUpdatedSignal is received.
Change-Id: I8b5ec885b00009be05222db02acd745218759131 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/59758 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Patrick Tasse [Thu, 5 Nov 2015 20:08:23 +0000 (15:08 -0500)]
analysis: Fix missing setItemCount in AbstractSegmentStoreTableViewer
When the last trace is closed, the table viewer input is set to null.
Its item count should also be set to 0. Otherwise this can later cause a
NullPointerException in the TableViewer.
Change-Id: Ic1d482fd5e4ee64f7969375b1fe4d8b626fa31e0 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/59781 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Matthew Khouzam [Thu, 1 Oct 2015 00:59:02 +0000 (20:59 -0400)]
TMF: Fix behavior of XML time graph views with experiments
Expected behavior:
* Show the content of analyses when the trace contains those analyses.
* If experiment, show the content of analyses if any of the trace or
the experiment itself contains those analyses.
* Empty if no trace contains the required analyses.
Change-Id: Id04c2f9d4f1ecd9c8c466a9a0536e1b07277ea1f Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net> Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/35490 Reviewed-by: Hudson CI
lttng: Do not throw exception if callsite binary is missing
If a trace with debug information is opened on a different machine
than the one where it was taken, it's very possible for the referred
binary files to not be present. In such a case it should not throw
an exception, but simply return that no source callsite information
is available.
The (upcoming) "binary callsite" information should still be available
in such cases though.
Replace instances of FluentIterable with Java 8 Streams
Guava's FluentIterable was already used in some places to make use of
functional idioms. Now that we have moved to Java 8 we can replace
those with base Java Streams.
The new o.e.jdt.annotation 2.0 annotations (based on Java 8
Type Annotations [1]) can now apply on generic type declarations,
allowing things like "List<@NonNull String>".
The @NonNullByDefault annotation, already in use, will now apply
to these locations. This required some code changes to eliminate
compilation errors, notably in places where null checks were
previously made and were not needed, or where some existing
declarations had to be specified as @Nullable.
Another relatively important change is the new syntax for []
arrays. Before, only "@NonNull String[]" was allowed, which meant
"a non-null reference to an array of unspecified Strings". Now, it
instead means "an unspecified reference to an array of non-null
Strings".
It is still possible to specify the array reference itself, but by
doing: "String @NonNull []". Both locations can be annotated
independently.
[1] See https://docs.oracle.com/javase/tutorial/java/annotations/type_annotations.html
Change-Id: I4cb0a3266928c24cfd7f8ed442c93556132f892c Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-on: https://git.eclipse.org/r/57252 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Patrick Tasse [Wed, 28 Oct 2015 18:56:17 +0000 (14:56 -0400)]
tmf: Add drop-down to Next Marker action to set navigation enablement
The Next Marker action now has the AS_DROP_DOWN_MENU style. The menu
items allow to disable navigation of markers by category.
The Next/Previous Marker actions now skip markers of disabled
categories.
The marker list is cleared immediately when switching traces in the
abstract time graph view. If the trace was not a supported trace for
that specific view, the marker list would never get updated.
The marker actions now disabled if the time graph has no content (empty
time bounds).
The enablement/disablement of the Next/Previous Marker actions based on
current time selection that was requested and implemented in
https://git.eclipse.org/r/57135 is reverted for the following reasons:
- It would now require to go through the list of markers and comparing
each marker category against the set of disabled categories, just to set
the action enabled state, whenever the time selection changes.
- It would make the Next Marker drop down menu inaccessible if the
current time selection is after the last marker.
Change-Id: Idd8361ccc6a00c0bb19749019965e5389aa2692a Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/59171 Reviewed-by: Hudson CI
Patrick Tasse [Tue, 27 Oct 2015 22:40:40 +0000 (18:40 -0400)]
tmf: Add Show Markers menu for time graph viewer
Support the dynamic Show Markers menu in time graph viewer that contains
a checked action for each of: Bookmarks category, view-specific marker
categories, and trace-specific marker categories for the current trace.
Add the menu to the abstract time graph view's view menu.
Hide markers of categories that are unchecked in the Show Markers menu.
This will also make them ignored in Next/Previous Marker navigation.
Change-Id: I31c0ee983c217a149070f8628a162fc7420222d6 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/59072 Reviewed-by: Hudson CI
common: Add external annotations for Guava's Table#get
Just like Map.get(), Table.get() can return a null value to
indicate that the key is not present in the table, independently
of the declaration of the type V.
Guava Tables are now used in the graph/critical path classes, so
this is also required.
Slightly harder to add annotations to Guava classes atm due to
https://bugs.eclipse.org/bugs/show_bug.cgi?id=480462
but one can still write the .eea files manually.
Change-Id: Id5cc1bdea73bafe62af60df0fdf7f3e9c5f40796 Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-on: https://git.eclipse.org/r/58776 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
common: Add external annotations for Map.get()/.remove()
Even if one declares a Map<Object, @NonNull Object>, Map.get()
can return a null to indicate "there is no value for this key".
Same applies to .remove() too.
Since the base methods are not annotated, we either have to
supply our own annotation, or make sure to always use @Nullable
keys. The former is less error-prone, so let's do that.
Modified ILttngControlService to add a loadSession command, also
implemented the methods in the appropriate children classes
(LTTngControlService and NullControlService).
Added ProfileDialog and ProfileHandler, as well as the appropriate
modifications to the plugin.xml to allow the execution of the handler as
well as the call to the Handler. As for now, pre-selected profiles must
be in
org.eclipse.tracecompass.internal.lttng2.control.ui/resources/folders.txt.
Appropriate .icons, strings and whatnot are externalized and at the
appropriate location > messages.properties.
Signed-off-by: Patrick-Jeffrey Pollo Guilbert <patrick.pollo.guilbert@gmail.com> Signed-off-by: William Tri-Khiem Truong <tri-khiem-william.truong@polymtl.ca> Signed-off-by: William Enright <william.enright@polymtl.ca>
Change-Id: Id312708b1907f3dd36fab65da7d96d5f917404a2
Reviewed-on: https://git.eclipse.org/r/45958 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
lttng: Rename the debug-info callsite aspect to "source callsite"
If not all debug information is available in the binary, it is possible
to only display the "binary file/symbol/offset" tuple. The latter will
be named "binary callsite", to differentiate it from the complete
source callsite.
Change-Id: Ie7e0368a6b1c02c63f759536728835f464ea463b Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-on: https://git.eclipse.org/r/58775 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Matthew Khouzam [Sun, 25 Oct 2015 01:40:18 +0000 (21:40 -0400)]
analysis: Improve comments for IKernelAnalysis.java
Add javadoc to IKernelAnalysis. The tracepoints used by the kernel state
system now are described in a simpler language, as it is unfair to assume
that an eclipse developper working with trace compass is also a Linux
kernel developer.
This patch is part of an effort to make it easier to adapt new operating
system traces to trace compass. The javadoc is written based on the commit
messages for given patches and Linux Kernel Maling List discussions as well
as wikipedia, trace metadata and Linux Weekly News updates.
Change-Id: I33eb53d0b172c3b9d235eaa2e4681eaa410e4e76 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/58886 Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Reviewed-by: Hudson CI
Patrick Tasse [Fri, 23 Oct 2015 22:55:05 +0000 (18:55 -0400)]
tmf: Add TmfTraceAdapterManager
This adapter manager can handle adapters that are specific to a
particular trace type id, to provide specific adapters even if the trace
instance is of the same class.
Unlike AdapterManager, this manager will return a list of all matching
adapters that adapt the given trace.
Change-Id: I4c8d6e6d725cf80a2e9ab865ea3217ae05f8cc73 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/58863 Reviewed-by: Hudson CI
Patrick Tasse [Tue, 20 Oct 2015 16:51:05 +0000 (12:51 -0400)]
tmf: Improve bookmark and marker handling
- Support goto marker without rank (with time and duration) in event
table.
- Update goto marker handling to broadcast time/time range selection.
- Execute pending goto marker handling after trace opened signal sent.
- Add initial value to AddBookmarkDialog.
- Use AddBookmarkDialog in event table.
- Improve format of bookmark location string.
- Add interface for marker attribute strings.
- Fix handling of marker changes when trace is closed or deleted.
- Support ADDED resource change delta and consolidate handling of all
deltas from the same resource change event.
- Add methods to add or remove one or more markers in event table.
- Support location attribute as int (backward compatible) or String
value in trace package import operation.
Change-Id: I64fa20af7c7c3bc7854c92184df2b86d1831f850 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/58543 Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Hudson CI