Ave/Ariadne is an integrated debugging environment. Ariadne is the modeling component that provides a simple language to specify behavioral abstractions as patterns of events in logical time. The patterns are detected by a collection of finite-state recognizers. Ave is the scalable visual feedback engine, which provides feedback on complete and partial matches, highlighting the error path if the match fails. There are four salient features of Ave/Ariadne environment: The first is the ability to provide feedback on failures, the second is the scalability of the patterns, the third is the conciseness of its modeling language, and the fourth is the provision for incremental exploration of the program execution from different perspectives.
Debugging is an exercise in exploration. Programmers often do not anticipate bugs. So the initial description of the behavior is bound to be coarse. Ave/Ariadne provides the user with an environment where a coarse behavioral description can be refined at successive iterations guided by the feedback from the debugger. This exploration of different facets of program behavior will either lead the user to the error, or convince him/her that the behavior is indeed the correct one. Ariadne provides the user with the functional queries to explore the characteristics of the match. As an example, the user can match a number of multicasts, and then use a functional query to find out the which processes actually sent the multicasts. The user can also calculate new attributes for the matched abstractions, and thus explore different dimensions of the behavior. Ave's strategy of projecting the new attributes in a color domain makes it easier for users to group similar abstract events together. As an example, the user may match a number of data exchanges between processors. He or she can then ask Ariadne to compute a new attribute for each exchange which gives the distance between the processors that exchanged data values. Different distances get projected to different colors. The display in Ave highlights events with the same distance attribute with the same color. The user can easily identify events that are similar from this color scheme.
Section 2 gives a brief overview of Ave/Ariadne environment. Section 3 provides several sample debugging sessions illustrating its capabilities.