diff options
-rw-r--r-- | callstack/org.eclipse.tracecompass.incubator.callstack.core/src/org/eclipse/tracecompass/incubator/callstack/core/instrumented/statesystem/CallStackStateProvider.java | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/callstack/org.eclipse.tracecompass.incubator.callstack.core/src/org/eclipse/tracecompass/incubator/callstack/core/instrumented/statesystem/CallStackStateProvider.java b/callstack/org.eclipse.tracecompass.incubator.callstack.core/src/org/eclipse/tracecompass/incubator/callstack/core/instrumented/statesystem/CallStackStateProvider.java index 835e492fe..36064cec3 100644 --- a/callstack/org.eclipse.tracecompass.incubator.callstack.core/src/org/eclipse/tracecompass/incubator/callstack/core/instrumented/statesystem/CallStackStateProvider.java +++ b/callstack/org.eclipse.tracecompass.incubator.callstack.core/src/org/eclipse/tracecompass/incubator/callstack/core/instrumented/statesystem/CallStackStateProvider.java @@ -21,7 +21,6 @@ import org.eclipse.tracecompass.incubator.analysis.core.aspects.ThreadNameAspect import org.eclipse.tracecompass.incubator.callstack.core.flamechart.Messages; import org.eclipse.tracecompass.incubator.internal.callstack.core.Activator; import org.eclipse.tracecompass.statesystem.core.ITmfStateSystemBuilder; -import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue; import org.eclipse.tracecompass.statesystem.core.statevalue.TmfStateValue; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.statesystem.AbstractTmfStateProvider; @@ -109,6 +108,8 @@ public abstract class CallStackStateProvider extends AbstractTmfStateProvider { /** CallStack state system ID */ private static final String ID = "org.eclipse.linuxtools.tmf.callstack"; //$NON-NLS-1$ + private boolean fHasErrors = false; + /** * Default constructor * @@ -175,17 +176,18 @@ public abstract class CallStackStateProvider extends AbstractTmfStateProvider { threadName = Long.toString(getThreadId(event)); } int quark = ss.getQuarkAbsoluteAndAdd(PROCESSES, processName, threadName, InstrumentedCallStackAnalysis.CALL_STACK); - ITmfStateValue poppedValue = ss.popAttribute(timestamp, quark); + Object poppedValue = ss.popAttributeObject(timestamp, quark); /* * Verify that the value we are popping matches the one in the * event field, unless the latter is undefined. */ - if (!functionExitState.equals(poppedValue)) { + if (!fHasErrors && !functionExitState.equals(poppedValue)) { Activator.getInstance().logWarning(NLS.bind(Messages.CallStackStateProvider_EventDescription, event.getName(), - event.getTimestamp().getValue()) + ": " + NLS.bind( //$NON-NLS-1$ - Messages.CallStackStateProvider_UnmatchedPoppedValue, - functionExitState, - poppedValue)); + event.getTimestamp().getValue()) + ": " //$NON-NLS-1$ + + NLS.bind( Messages.CallStackStateProvider_UnmatchedPoppedValue, + functionExitState, + poppedValue)); + fHasErrors = true; } } } |