Stefan Hajnoczi writes: > The regular expression used to parse ./trace-events fails on the > following input:
> test_paren(int n) "(%d)" > The problem is that the regular expression uses greedy matching and '"' > becomes the name of the event while 'test_paren(int n) ' becomes the > properties of the event. > Prevent greedy matching from going too far by explicitly saying the name > cannot have a '"'. This forces the regular expression engine to > backtrack to the desired match. > Reported-by: Bob Breuer <[email protected]> > Signed-off-by: Stefan Hajnoczi <[email protected]> Reviewed-by: Lluís Vilanova <[email protected]> > --- > scripts/tracetool/__init__.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py > index 175df08..148f553 100644 > --- a/scripts/tracetool/__init__.py > +++ b/scripts/tracetool/__init__.py > @@ -120,7 +120,7 @@ class Event(object): > The event arguments. > """ > - _CRE = > re.compile("((?P<props>.*)\s+)?(?P<name>[^(\s]+)\((?P<args>[^)]*)\)\s*(?P<fmt>\".*)?") > + _CRE = > re.compile("((?P<props>.*)\s+)?(?P<name>[^\"(\s]+)\((?P<args>[^)]*)\)\s*(?P<fmt>\".*)?") > _VALID_PROPS = set(["disable"]) > -- > 1.7.10 -- "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
