void TableTicker::Tick(TickSample* sample) { // Marker(s) come before the sample int i = 0; const char *marker = mStack->getMarker(i++); for (int i = 0; marker != NULL; i++) { mProfile.addTag(ProfileEntry('m', marker)); marker = mStack->getMarker(i++); } mStack->mQueueClearMarker = true; // Sample // 's' tag denotes the start of a sample block // followed by 0 or more 'c' tags. for (int i = 0; i < mStack->mStackPointer; i++) { if (i == 0) { Address pc = 0; if (sample) { pc = sample->pc; } mProfile.addTag(ProfileEntry('s', mStack->mStack[i], pc)); } else { mProfile.addTag(ProfileEntry('c', mStack->mStack[i])); } } if (!sLastTracerEvent.IsNull()) { TimeDuration delta = TimeStamp::Now() - sLastTracerEvent; mProfile.addTag(ProfileEntry('r', delta.ToMilliseconds())); } }