A distributed debugger for Amoeba
We describe a debugger that is being developed for distributed programs in Amoeba. A major goal in our work is to make the debugger independent of the Amoeba kernel. Our design integrates many facilities found in other debuggers, such as execution ...
Debugging heterogeneous distributed systems using event-based models of behavior
Event Based Behavioral Abstraction (EBBA) is a high-level debugging approach which treats debugging as a process of creating models of actual behavior from the activity of the system and comparing these to models of expected system behavior. The ...
Experience with topaz telebugging
The Topaz TeleDebug (TTD) facility provides a remote debugging capability supporting software development in the Topaz environment. Topaz is a software environment providing rich support for programming in Modula2+, and extended version of Modula 2. TTD ...
Debugging distributed C programs by real time reply
Bugnet is a portable Unix system designed to debug C programs distributed within a local area network. A graphics interface allows the user of a Sun workstation to manage process groups and monitor process interactions very conveniently. Bugnet gives ...
A real-time monitor for a distributed real-time operating system
Monitoring and debugging for a distributed real-time system is a complicated problem due to the lack of a set of advanced tools and adequate operating system capability. Software tools can cover the wide range of the software development life cycle from ...
IGOR: a system for program debugging via reversible execution
Typical debugging tools are insufficiently powerful to find the most difficult types of program misbehaviors. We have implemented a prototype of a new debugging system, IGOR, which provides a great deal more useful information and offers new abilities ...
Supporting reverse execution for parallel programs
Parallel programs are difficult to debug because they run for a, long time and two executions may yield different results. Reverse execution, is a simple and powerful concept that solves both these problems. We are designing a tool for debugging ...
Debugging of heterogeneous parallel systems
The Agora system supports the development of heterogeneous parallel programs, e.g. programs written in multiple languages and running on heterogeneous machines. Agora has been used since September 1986 in a large distributed system [1]: Two versions of ...
A mechanism for efficient debugging of parallel programs
This paper addresses the design and implementation of an integrated debugging system for parallel programs running on shared memory multi-processors (SMMP). We describe the use of flowback analysis to provide information on causal relationships between ...
High-level debugging in parasight
Debugging parallel programs with time critical dependencies is difficult due to subtle race conditions that may cause deadlock, starvation, and other errors. These errors can be detected by multiple instrumentation points triggered by logical ...
An integrated approach to parallel program debugging and performance analysis onlarge-scale multiprocessors
One of the most serious problems in the development cycle of large-scale parallel programs is the lack of tools for debugging and performance analysis. We are addressing the problem on large-scale, shared-memory multiprocessors. We have developed a ...
A program debugger for a systolic array: design and implementation
The Warp machine consists of a programmable linear systolic array connected to a general-purpose workstation host. Warp can be accessed either locally from this host or remotely from a large number of workstations connected to a local area network. ...
Partial orders for parallel debugging
Parallel programs differ from sequential programs primarily in that the temporal relationships between events are only partially defined. However, for a given distributed computation, debugging utilities typically linearize the observed set of events ...
Initial experiences with a pattern-oriented parallel debugger
Highly parallel programs are often best understood in terms of logical patterns of inter process communication. In order to debug such programs, the user must determine the extent to which the intended patterns occur during execution. To facilitate this,...
Voyeur: graphical views of parallel programs
Voyeur is a prototype system that facilitates the construction of application-specific, visual views of parallel programs. These views range from textual views showing the contents of variables to graphical maps of the state of the computational domain ...
Debugging parallel programs in parallel
There often exists a large gap between the user's conceptual picture of a parallel machine and the real machine, and between the user's expectations for program execution and the real process of execution. A monitoring and debugging machine can be used ...
A graphical representation of concurrent processes
This paper describes a graphical representation called a concurrency map. It provides a succinct representation of the potentially large collection of possible correct event-orderings for a set of concurrent processes.
The normal problems of monitoring, ...
Concurrent algorithmic debugging
Algorithmic Debugging is a theory of debugging that uses queries on the compositional semantics of a program in order to localize bugs. It uses the following principle: if a computation of a program's component gives an incorrect result, while all the ...
Interactive blackbox debugging for concurrent languages
We describe a novel approach to the design of portable integrated debugging tools for concurrent languages. Our design partitions the tools set into two categories. The language specific tools take into account the particular features of a programming ...