next up previous
Next: Sample Ariadne Debugging Up: Our Approach Previous: Logical Time Manipulation

Ariadne Queries

In the design of our language, we traded expressivity for simplicity, so we cannot always describe the intended behaviors precisely. To compensate, Ariadne provides a set of functions that return characteristics of a match. The user can explore a match with queries such as

Did all matching events occur in parallel?
Which processes were the destinations of a Write in this match?
Which processes matched the first Read of the pattern?
Why did the match fail on process 12?
At this time, Ariadne provides only rudimentary feedback. Our current work is aimed at expanding its repertoire. Although simple, Ariadne has proved effective in finding a variety of parallel program bugs. We have found it flexible in allowing the user to examine program behavior from different viewpoints. The next section describes several Ariadne debugging sessions illustrating its modeling language and functionality.



Joydip Kundu kundu@neweng.enet.dec.com