To integrate Ariadne and Sneaky, we made use of the TAU program interaction and control infrastructure, called Sneezy. Sneezy was motivated by the desire to support Sneaky, which needed an API to control the target program. For reasons of tool portability, interoperability, and reuse, we chose to isolate the entire debugger-as opposed to just its programming language-from the details of program control. To do this, we built an agent-based infrastructure in which Sneaky acts as the client of an agent as pictured in Figure 7.
Sneezy supports inspection and control of multi-threaded programs with
multiple address spaces. The agent handles all communication between the
client and the target program, making it possible, for example, for Sneaky
(or any other client) to be unaware of whether it is running on the same
machine as the target program or whether they are communicating via
message-passing or shared memory. The infrastructure is quite general and it
can be used to support a variety of tool interactions. In particular,
Ariadne could also integrate into the environment as a Sneezy client, along
with a variety of trace and data visualization tools. Sneezy will support these tools as multiple co-operating
clients as discussed in Section 5.3 below. Co-operation is
important for replay debugging in particular, since a replay control module
and a debugger both need to be present, but it is not natural for
either to be part of the other. Other uses might include running a
data visualizer along with a load monitor or debugger. Together, the
clients of Sneezy will provide a comprehensive debugging environment.
Figure 8 shows the beginning of that environment with a number of
TAU tools working in concert with Ariadne and Sneezy during a debugging
session.
Sneezy's design is minimalist, making it lightweight, relatively easy to implement, and potentially simple to port and verify. Implementations of complex but common functionality will exist as portable libraries available to the clients. Other systems with functionality similar to that of Sneezy include Dynascope [21] and OMIS [18].