@@ -1019,7 +1019,6 @@ class TraceBuffer
10191019
10201020 void resetTraceBuffer ()
10211021 {
1022- printf (" Reset Trace Buffer\n " );
10231022 postCount_ = 0 ;
10241023 cur_ = 0 ;
10251024 first_ = 0 ;
@@ -1067,41 +1066,43 @@ class TraceBuffer
10671066 // printf(" Sample: post trigger\n");
10681067 }
10691068
1069+ if ( !(state_ == POSTTRIGGER && postCount_ >= postDelay_) ) {
10701070// Circular buffer
10711071#ifdef _OBJMAP_DEBUG_
1072- std::cout << " Sample:" << handler << " : numRecs:" << numRecs_ << " first:" << first_ << " cur:" << cur_
1073- << " state:" << state2char.at (state_) << " isOverrun:" << isOverrun_
1074- << " samplesLost:" << samplesLost_ << std::endl;
1072+ std::cout << " Sample:" << handler << " : numRecs:" << numRecs_ << " first:" << first_ << " cur:" << cur_
1073+ << " state:" << state2char.at (state_) << " isOverrun:" << isOverrun_
1074+ << " samplesLost:" << samplesLost_ << std::endl;
10751075#endif
1076- cycleBuffer_[cur_] = cycle;
1077- handlerBuffer_[cur_] = handler;
1078- if ( trigger ) {
1079- triggerCycle = cycle;
1080- }
1076+ cycleBuffer_[cur_] = cycle;
1077+ handlerBuffer_[cur_] = handler;
1078+ if ( trigger ) {
1079+ triggerCycle = cycle;
1080+ }
10811081
1082- // Sample all the trace object buffers
1083- ObjectBuffer* varBuffer_;
1084- for ( size_t obj = 0 ; obj < numObjects; obj++ ) {
1085- varBuffer_ = objBuffers_[obj];
1086- varBuffer_->sample (cur_, trigger);
1087- }
1082+ // Sample all the trace object buffers
1083+ ObjectBuffer* varBuffer_;
1084+ for ( size_t obj = 0 ; obj < numObjects; obj++ ) {
1085+ varBuffer_ = objBuffers_[obj];
1086+ varBuffer_->sample (cur_, trigger);
1087+ }
10881088
1089- if ( numRecs_ < bufSize_ ) {
1090- tagBuffer_[cur_] = state_;
1091- numRecs_++;
1092- cur_ = (cur_ + 1 ) % bufSize_;
1093- if ( cur_ == 0 ) first_ = 0 ; // 1;
1094- }
1095- else { // Buffer full
1096- // Check to see if we are overwriting trigger
1097- if ( tagBuffer_[cur_] == TRIGGER ) {
1098- // printf(" Sample Overrun\n");
1099- isOverrun_ = true ;
1089+ if ( numRecs_ < bufSize_ ) {
1090+ tagBuffer_[cur_] = state_;
1091+ numRecs_++;
1092+ cur_ = (cur_ + 1 ) % bufSize_;
1093+ if ( cur_ == 0 ) first_ = 0 ; // 1;
1094+ }
1095+ else { // Buffer full
1096+ // Check to see if we are overwriting trigger
1097+ if ( tagBuffer_[cur_] == TRIGGER ) {
1098+ // printf(" Sample Overrun\n");
1099+ isOverrun_ = true ;
1100+ }
1101+ tagBuffer_[cur_] = state_;
1102+ numRecs_++;
1103+ cur_ = (cur_ + 1 ) % bufSize_;
1104+ first_ = cur_;
11001105 }
1101- tagBuffer_[cur_] = state_;
1102- numRecs_++;
1103- cur_ = (cur_ + 1 ) % bufSize_;
1104- first_ = cur_;
11051106 }
11061107
11071108 if ( isOverrun_ ) {
@@ -1110,14 +1111,12 @@ class TraceBuffer
11101111
11111112 if ( (state_ == TRIGGER ) && (postDelay_ == 0 ) ) {
11121113 invokeAction = true ;
1113- std::cout << " Invoke Action\n " ;
11141114 }
11151115
11161116 if ( state_ == POSTTRIGGER ) {
11171117 postCount_++;
11181118 if ( postCount_ >= postDelay_ ) {
11191119 invokeAction = true ;
1120- std::cout << " Invoke Action\n " ;
11211120 }
11221121 }
11231122
0 commit comments