Stefan Hajnoczi writes:
> On Thu, Jan 10, 2013 at 08:23:19PM +0100, Lluís Vilanova wrote:
>> Signed-off-by: Lluís Vilanova <[email protected]>
>> ---
>> monitor.c | 20 +++++++++++++++++---
>> 1 file changed, 17 insertions(+), 3 deletions(-)
>>
>> diff --git a/monitor.c b/monitor.c
>> index 9cf419b..4c40541 100644
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -735,10 +735,24 @@ 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) {
>> + if (!trace_event_get_state_static(ev)) {
>> + monitor_printf(mon, "event \"%s\" is not traceable\n",
>> tp_name);
>> + }
>> + 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 if (!trace_event_get_state_static(ev)) {
>> + monitor_printf(mon, "event \"%s\" is not traceable\n", tp_name);
>> + } else {
>> + trace_event_set_state_dynamic(ev, new_state);
>> + }
> Do we need to duplicate the pattern vs not-a-pattern case?
> We can loop with trace_event_pattern() and print the "unknown event
> name" only if !trace_event_is_pattern().
You mean something like this?
#v+
bool found = false;
TraceEvent *ev = NULL;
while ((ev = trace_event_pattern(tp_name, ev)) != NULL) {
found = true;
if (!trace_event_get_state_static(ev)) {
monitor_printf(mon, "event \"%s\" is not traceable\n", tp_name);
} else {
trace_event_set_state_dynamic(ev, new_state);
}
}
if (!trace_event_is_pattern(tp_name) && !found) {
monitor_printf(mon, "unknown event name \"%s\"\n", tp_name);
}
#v-
Lluis
--
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth