Debugging distributed object applications with the Eclipse platform (original) (raw)

2004, Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange - eclipse '04

Debugging distributed applications is a wellknown challenge within the realm of Computer Science. Common problems faced by developers include: lack of an observable global state, lack of a central location from where to monitor possible states, non-deterministic execution, heisenbugs, and many others. There are currently many good techniques available which could be employed in building a tool for circumventing some of those issues, especially when considering widespread middleware-induced models such as Java RMI, CORBA or Microsoft .NET based applications. In this paper, we introduce an extended symbolic debugger for Eclipse which besides usual source-level debugging capabilities, adds to the abstraction pool a distributed thread concept, central to causality in any synchronous-call distributed object application.

An Eclipse-Based Tool for Symbolic Debugging of Distributed Object Systems

Lecture Notes in Computer Science, 2007

After over thirty years of distributed computing, debugging distributed applications is still regarded as a difficult task. While it could be argued that this condition stems from the complexity of distributed executions, the fast pace of evolution witnessed with distributed computing technologies has also played its role by shortening the lifespan of many useful debugging tools. In this paper we present an extensible Eclipse-based tool which brings distributed threads and symbolic debuggers together, resulting in a simple and useful debugging aid. This extensible tool is based on a technique that is supported by elements that are common to synchronous-call middleware implementations, making it a suitable candidate for surviving technology evolution.

Extensible Symbolic Debugging for Distributed Object Systems

After over thirty years of distributed computing, debugging distributed applications is still regarded as a difficult task. While it could be argued that this condition stems from the complexity of distributed executions, the fast pace of evolution witnessed with distributed computing technologies has also played its role by shortening the lifespan of many useful debugging tools. In this Masters thesis summary, we briefly summarize our incursion in building an extensible tool which puts distributed threads and symbolic debuggers ...

Debugging of distributed object-oriented applications

1995

This paper presents a debugging tool to observe causality relationships in concurrent object oriented algorithms. We suggest to take into account four sources of order that convey dependencies introduced by concurrency, synchronization and transactional aspects. These new causal relations are illustrated by graphs related to particular views of a program execution.

A Framework to Support Parallel and Distributed Debugging

High-Performance …, 1998

We discuss debugging prototypes that can easily support new functionalities, depending on the requirements of high-level computational models, and allowing a coherent integration with other tools in a software engineering environment. Concerning the rst aspect, we propose a framework that identi es two distinct levels of functionalities that should be supported by a parallel and distributed debugger using: a process and thread-level, and a coordination level concerning sets of processes or threads. An incremental approach is used to e ectively develop prototypes that support both functionalities. Concerning the second aspect, we discuss how the interfacing with other tools has in uenced the design of a process-level debugging interface (PDBG) and a distributed monitoring and control layer called (DAMS).

Graphical Debugging of Distributed Applications - Using UML Object Diagrams to Visualize the State of Distributed Applications at Runtime

While debugging is one of the most time consuming tasks software developers perform, the tool support, especially for distributed applications, is lacking according to many professional developers. The Visual Debugger is an approach to provide an easy-to-use tool which gives software developers an abstract view on the current state of their application in debugging sessions. While similar tools for non distributed applications already exist, the Visual Debugger addresses the more complex debugging scenarios in distributed applications. Therefore, several views with different levels of abstraction of the current state of an application are provided. Although the approach may be adapted to other object oriented programming languages, the current target of the Visual Debugger is languages running on the Java Virtual Machine with the focus on Java.

Debugging of parallel and distributed programs

This chapter surveys the main issues involved in correctness debugging of parallel and dis-tributed programs. Distributed debugging is an instance of the more general problem of observation of a distributed computation. This chapter briefly summarizes the theoretical foundations of the dis-tributed debugging activity. Then a survey is presented of the main methodologies used for parallel and distributed debugging, including state and event based debugging, deterministic re-execution, systematic state exploration, and correctness predicate evaluation. Such approaches are complemen-tary to one another, and the chapter discusses how they can be supported using distinct techniques for observation and control.

Debugging in a distributed world: observation and control

Proceedings. 1998 IEEE Workshop on Application-Specific Software Engineering and Technology. ASSET-98 (Cat. No.98EX183), 1998

Debugging distributed programs is considerably more difficult than debugging sequential programs. We address issues in debugging distributed programs and provide a general framework for observing and controlling a distributed computation and its applications to distributed debugging. Observing distributed computations involves solving the predicate detection problem. We present the main ideas involved in developing efficient algorithms for predicate detection. Controlling distributed computations involves solving the predicate control problem. Predicate control may be used to restrict the behavior of the distributed program to suspicious executions. We also present an example of how predicate detection and predicate control can be used in practice to facilitate distributed debugging.

Loading...

Loading Preview

Sorry, preview is currently unavailable. You can download the paper by clicking the button above.