|
61 | 61 | public class TraceEventCallStackProvider extends CallStackStateProvider { |
62 | 62 |
|
63 | 63 | private static final String ASYNC_SUFFIX = "(async)"; //$NON-NLS-1$ |
64 | | - private static final int VERSION_NUMBER = 8; |
| 64 | + private static final int VERSION_NUMBER = 9; |
65 | 65 | private static final int UNSET_ID = -1; |
66 | 66 | static final String EDGES = "EDGES"; //$NON-NLS-1$ |
67 | 67 |
|
@@ -266,6 +266,9 @@ protected void eventHandle(ITmfEvent event) { |
266 | 266 | return; |
267 | 267 | } |
268 | 268 | switch (ph) { |
| 269 | + case TraceEventPhases.INSTANT: |
| 270 | + handleInstant(event, ss, timestamp, processName); |
| 271 | + break; |
269 | 272 | case TraceEventPhases.NESTABLE_START: |
270 | 273 | handleStart(event, ss, timestamp, processName + ASYNC_SUFFIX); |
271 | 274 | break; |
@@ -375,6 +378,31 @@ private void updateFLinks(ITmfEvent event, ITmfStateSystemBuilder ss, long ts, S |
375 | 378 | } |
376 | 379 | } |
377 | 380 |
|
| 381 | + private void handleInstant(@NonNull ITmfEvent event, ITmfStateSystemBuilder ss, long timestamp, String processName) { |
| 382 | + super.addMarker(event); |
| 383 | + Map<String, Object> map = TraceEventAspects.ARGS_ASPECT.resolve(event); |
| 384 | + String toStore ="null"; |
| 385 | + if (map != null) { |
| 386 | + toStore = map.toString(); |
| 387 | + } |
| 388 | + if (toStore != null) { |
| 389 | + int processQuark = ss.getQuarkAbsoluteAndAdd(PROCESSES, processName); |
| 390 | + int pid = getProcessId(event); |
| 391 | + ss.modifyAttribute(timestamp, pid, processQuark); |
| 392 | + |
| 393 | + String threadName = getThreadName(event); |
| 394 | + long threadId = getThreadId(event); |
| 395 | + if (threadName == null) { |
| 396 | + threadName = Long.toString(threadId); |
| 397 | + } |
| 398 | + int threadQuark = ss.getQuarkRelativeAndAdd(processQuark, threadName); |
| 399 | + ss.modifyAttribute(timestamp, threadId, threadQuark); |
| 400 | + |
| 401 | + int callStackQuark = ss.getQuarkRelativeAndAdd(threadQuark, InstrumentedCallStackAnalysis.ANNOTATIONS); |
| 402 | + ss.modifyAttribute(timestamp, toStore, callStackQuark); |
| 403 | + } |
| 404 | + } |
| 405 | + |
378 | 406 | private void updateTLinks(@NonNull ITmfEvent event, ITmfStateSystemBuilder ss, long ts, String processName) { |
379 | 407 | EventTreeKey key = getEventTreeKey(event); |
380 | 408 |
|
|
0 commit comments