Stefan Hajnoczi writes: > Use \w for properties and trace event names since they are both drawn > from [a-zA-Z0-9_] character sets.
> The .* for matching properties was too aggressive and caused the > following failure with foo(int rc) "(this is a test)": > Traceback (most recent call last): > File "scripts/tracetool.py", line 139, in <module> > main(sys.argv) > File "scripts/tracetool.py", line 134, in main > binary=binary, probe_prefix=probe_prefix) > File "scripts/tracetool/__init__.py", line 334, in generate > events = _read_events(fevents) > File "scripts/tracetool/__init__.py", line 262, in _read_events > res.append(Event.build(line)) > File "scripts/tracetool/__init__.py", line 225, in build > return Event(name, props, fmt, args, arg_fmts) > File "scripts/tracetool/__init__.py", line 185, in __init__ > % ", ".join(unknown_props)) > ValueError: Unknown properties: foo(int, rc) > Cc: Lluís Vilanova <vilan...@ac.upc.edu> > Reported-by: Eric Auger <eric.au...@linaro.org> > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > scripts/tracetool/__init__.py | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py > index 36c789d..474f11b 100644 > --- a/scripts/tracetool/__init__.py > +++ b/scripts/tracetool/__init__.py > @@ -140,8 +140,8 @@ class Event(object): > The format strings for each argument. > """ > - _CRE = re.compile("((?P<props>.*)\s+)?" > - "(?P<name>[^(\s]+)" > + _CRE = re.compile("((?P<props>\w*)\s+)?" > + "(?P<name>\w+)" > "\((?P<args>[^)]*)\)" > "\s*" > "(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?" The previous implementation allowed multiple properties. Maybe this should be instead (which still allows multiple properties): "((?P<props>[\w\s]+)\s+)?" "(?P<name>\w+)\s*" ... Thanks, 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