[Bug translator/14310] New: better error messages on recursive alias expansion

smakarov at redhat dot com sourceware-bugzilla@sourceware.org
Fri Jun 29 14:02:00 GMT 2012


http://sourceware.org/bugzilla/show_bug.cgi?id=14310

             Bug #: 14310
           Summary: better error messages on recursive alias expansion
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: translator
        AssignedTo: systemtap@sourceware.org
        ReportedBy: smakarov@redhat.com
    Classification: Unclassified


When an infinite recursive alias expansion goes through an alias suffix, it is
caught correctly just as for a regular alias expansion. However, the error
messages that result can be a bit unfocused:

[root:/opt/codebase/systemtap]:stap$ cat testsuite/semko/alias_suffixes06.stp 
#! stap -p2

# Test detection of indefinite recursion when suffixes are involved.

# a.b.c --> q.c --> r.c.c -> a.b.c.c -> ... -> a.b.c.c.c.c.c....
probe r = a.b { }
probe q.c = r.c.c { }
probe a.b = q { }
probe a.b.c { print("what?") }

[root:/opt/codebase/systemtap]:stap$ stap testsuite/semko/alias_suffixes06.stp 
semantic error: while resolving probe point: identifier 'r' at
testsuite/semko/alias_suffixes06.stp:7:13
        source: probe q.c = r.c.c { }
                            ^

semantic error: Recursive loop in alias expansion of q.c.c at
testsuite/semko/alias_suffixes06.stp:8:13: identifier 'c' at :7:15
        source: probe q.c = r.c.c { }
                              ^

semantic error: while resolving probe point: identifier 'a' at :9:7
        source: probe a.b.c { print("what?") }
                      ^

semantic error: no match: identifier 'c' at :9:11
        source: probe a.b.c { print("what?") }
                          ^

Pass 2: analysis failed.  Try again with another '--vp 01' option.

Here, the probe point reported for the "recursive loop" error is perhaps a bit
too deep down in the alias expansion, and the "no match" error is completely
unnecessary. The error handling for this case needs to be tweaked to produce
more informative output.

The ordinary recursive expansion error currently also has the same problem:

[root:/opt/codebase/systemtap]:stap$ stap -e 'probe a = b { } probe b = a { }
probe b { println("foo") }'
semantic error: while resolving probe point: identifier 'a' at <input>:1:27
        source: probe a = b { } probe b = a { } probe b { println("foo") }
                                          ^

semantic error: Recursive loop in alias expansion of a at <input>:1:27
semantic error: while resolving probe point: identifier 'b' at :1:11
        source: probe a = b { } probe b = a { } probe b { println("foo") }
                          ^

semantic error: no match
semantic error: while resolving probe point: identifier 'b' at :1:39
        source: probe a = b { } probe b = a { } probe b { println("foo") }
                                                      ^

Pass 2: analysis failed.  Try again with another '--vp 01' option.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Systemtap mailing list