Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> --- monitor.c | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/monitor.c b/monitor.c index 5e099bd..010f659 100644 --- a/monitor.c +++ b/monitor.c @@ -617,10 +617,19 @@ static void do_trace_event_set_state(Monitor *mon, const QDict *qdict) { const char *tp_name = qdict_get_str(qdict, "name"); bool new_state = qdict_get_bool(qdict, "option"); - int ret = trace_event_set_state(tp_name, new_state); - if (!ret) { - monitor_printf(mon, "unknown event name \"%s\"\n", tp_name); + if (trace_event_is_pattern(tp_name)) { + TraceEvent *ev = NULL; + while ((ev = trace_event_pattern(tp_name, ev)) != NULL) { + trace_event_set_state_dynamic(ev, new_state); + } + } else { + TraceEvent *ev = trace_event_name(tp_name); + if (ev == NULL) { + monitor_printf(mon, "unknown event name \"%s\"\n", tp_name); + } else { + trace_event_set_state_dynamic(ev, new_state); + } } }