diff options
Diffstat (limited to 'stubs')
-rw-r--r-- | stubs/trace-control.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/stubs/trace-control.c b/stubs/trace-control.c index 3740c38589..2dfcd9fb2b 100644 --- a/stubs/trace-control.c +++ b/stubs/trace-control.c @@ -19,10 +19,23 @@ void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state) void trace_event_set_state_dynamic(TraceEvent *ev, bool state) { TraceEventID id; + bool state_pre; assert(trace_event_get_state_static(ev)); id = trace_event_get_id(ev); - trace_events_enabled_count += state - trace_events_dstate[id]; - trace_events_dstate[id] = state; + /* + * We ignore the "vcpu" property here, since there's no target code. Then + * dstate can only be 1 or 0. + */ + state_pre = trace_events_dstate[id]; + if (state_pre != state) { + if (state) { + trace_events_enabled_count++; + trace_events_dstate[id] = 1; + } else { + trace_events_enabled_count--; + trace_events_dstate[id] = 0; + } + } } void trace_event_set_vcpu_state_dynamic(CPUState *vcpu, |