qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] simpletrace: Improve the error message if event is not declared
@ 2017-05-29 16:30 Jose Ricardo Ziviani
  2017-05-29 20:52 ` Philippe Mathieu-Daudé
  2017-05-30  9:46 ` Stefan Hajnoczi
  0 siblings, 2 replies; 3+ messages in thread
From: Jose Ricardo Ziviani @ 2017-05-29 16:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial

Today, if we use a trace-event file which does not declare an event
existing in the log file we'll get the following error:

$ scripts/simpletrace.py trace-events trace-68508
Traceback (most recent call last):
  File "scripts/simpletrace.py", line 242, in <module>
    run(Formatter())
  File "scripts/simpletrace.py", line 217, in run
    process(events, sys.argv[2], analyzer, read_header=read_header)
  File "scripts/simpletrace.py", line 192, in process
    for rec in read_trace_records(edict, log):
  File "scripts/simpletrace.py", line 107, in read_trace_records
    rec = read_record(edict, idtoname, fobj)
  File "scripts/simpletrace.py", line 71, in read_record
    return get_record(edict, idtoname, rechdr, fobj)
  File "scripts/simpletrace.py", line 45, in get_record
    event = edict[name]
KeyError: 'qemu_mutex_locked'

This patch improves this error by adding a hint instead of just that
KeyError log:

$ scripts/simpletrace.py trace-events trace-68508
'qemu_mutex_locked' event is logged but is not declared in the trace
events file, try using trace-events-all instead.

Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com>
---
 scripts/simpletrace.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/scripts/simpletrace.py b/scripts/simpletrace.py
index d60b3a0..f1be6e4 100755
--- a/scripts/simpletrace.py
+++ b/scripts/simpletrace.py
@@ -42,7 +42,15 @@ def get_record(edict, idtoname, rechdr, fobj):
         event_id = rechdr[0]
         name = idtoname[event_id]
         rec = (name, rechdr[1], rechdr[3])
-        event = edict[name]
+        try:
+            event = edict[name]
+        except KeyError, e:
+            import sys
+            sys.stderr.write('%s event is logged but is not declared ' \
+                             'in the trace events file, try using ' \
+                             'trace-events-all instead.\n' % str(e))
+            sys.exit(1)
+
         for type, name in event.args:
             if is_string(type):
                 l = fobj.read(4)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] simpletrace: Improve the error message if event is not declared
  2017-05-29 16:30 [Qemu-devel] [PATCH] simpletrace: Improve the error message if event is not declared Jose Ricardo Ziviani
@ 2017-05-29 20:52 ` Philippe Mathieu-Daudé
  2017-05-30  9:46 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-29 20:52 UTC (permalink / raw)
  To: Jose Ricardo Ziviani, qemu-devel; +Cc: qemu-trivial

On 05/29/2017 01:30 PM, Jose Ricardo Ziviani wrote:
> Today, if we use a trace-event file which does not declare an event
> existing in the log file we'll get the following error:
>
> $ scripts/simpletrace.py trace-events trace-68508
> Traceback (most recent call last):
>   File "scripts/simpletrace.py", line 242, in <module>
>     run(Formatter())
>   File "scripts/simpletrace.py", line 217, in run
>     process(events, sys.argv[2], analyzer, read_header=read_header)
>   File "scripts/simpletrace.py", line 192, in process
>     for rec in read_trace_records(edict, log):
>   File "scripts/simpletrace.py", line 107, in read_trace_records
>     rec = read_record(edict, idtoname, fobj)
>   File "scripts/simpletrace.py", line 71, in read_record
>     return get_record(edict, idtoname, rechdr, fobj)
>   File "scripts/simpletrace.py", line 45, in get_record
>     event = edict[name]
> KeyError: 'qemu_mutex_locked'
>
> This patch improves this error by adding a hint instead of just that
> KeyError log:
>
> $ scripts/simpletrace.py trace-events trace-68508
> 'qemu_mutex_locked' event is logged but is not declared in the trace
> events file, try using trace-events-all instead.
>
> Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  scripts/simpletrace.py | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/simpletrace.py b/scripts/simpletrace.py
> index d60b3a0..f1be6e4 100755
> --- a/scripts/simpletrace.py
> +++ b/scripts/simpletrace.py
> @@ -42,7 +42,15 @@ def get_record(edict, idtoname, rechdr, fobj):
>          event_id = rechdr[0]
>          name = idtoname[event_id]
>          rec = (name, rechdr[1], rechdr[3])
> -        event = edict[name]
> +        try:
> +            event = edict[name]
> +        except KeyError, e:
> +            import sys
> +            sys.stderr.write('%s event is logged but is not declared ' \
> +                             'in the trace events file, try using ' \
> +                             'trace-events-all instead.\n' % str(e))
> +            sys.exit(1)
> +
>          for type, name in event.args:
>              if is_string(type):
>                  l = fobj.read(4)
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] simpletrace: Improve the error message if event is not declared
  2017-05-29 16:30 [Qemu-devel] [PATCH] simpletrace: Improve the error message if event is not declared Jose Ricardo Ziviani
  2017-05-29 20:52 ` Philippe Mathieu-Daudé
@ 2017-05-30  9:46 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2017-05-30  9:46 UTC (permalink / raw)
  To: Jose Ricardo Ziviani; +Cc: qemu-devel, qemu-trivial

[-- Attachment #1: Type: text/plain, Size: 1505 bytes --]

On Mon, May 29, 2017 at 01:30:04PM -0300, Jose Ricardo Ziviani wrote:
> Today, if we use a trace-event file which does not declare an event
> existing in the log file we'll get the following error:
> 
> $ scripts/simpletrace.py trace-events trace-68508
> Traceback (most recent call last):
>   File "scripts/simpletrace.py", line 242, in <module>
>     run(Formatter())
>   File "scripts/simpletrace.py", line 217, in run
>     process(events, sys.argv[2], analyzer, read_header=read_header)
>   File "scripts/simpletrace.py", line 192, in process
>     for rec in read_trace_records(edict, log):
>   File "scripts/simpletrace.py", line 107, in read_trace_records
>     rec = read_record(edict, idtoname, fobj)
>   File "scripts/simpletrace.py", line 71, in read_record
>     return get_record(edict, idtoname, rechdr, fobj)
>   File "scripts/simpletrace.py", line 45, in get_record
>     event = edict[name]
> KeyError: 'qemu_mutex_locked'
> 
> This patch improves this error by adding a hint instead of just that
> KeyError log:
> 
> $ scripts/simpletrace.py trace-events trace-68508
> 'qemu_mutex_locked' event is logged but is not declared in the trace
> events file, try using trace-events-all instead.
> 
> Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com>
> ---
>  scripts/simpletrace.py | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)

Thanks, applied to my tracing tree:
https://github.com/stefanha/qemu/commits/tracing

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-05-30  9:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-29 16:30 [Qemu-devel] [PATCH] simpletrace: Improve the error message if event is not declared Jose Ricardo Ziviani
2017-05-29 20:52 ` Philippe Mathieu-Daudé
2017-05-30  9:46 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).