Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive for debugging hard-to-repeat software bugs. However, simply providing support for repeatedly stumbling on the same b...
详细信息
ISBN:
(纸本)9781479943944
Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive for debugging hard-to-repeat software bugs. However, simply providing support for repeatedly stumbling on the same bug does not help diagnose it. For bug diagnosis, developers typically want to modify the code, e.g., by creating and operating on new variables, or printing state. Unfortunately, this renders the RnR log inconsistent and makes Replay debugging (i.e., debugging while using an RnR log for replay) dicey at best. This paper presents rdb, the first scheme for replay debugging that guarantees exact replay. rdb relies on two mechanisms. The first one is compiler support to split the instrumented application into two executables: one that is identical to the original program binary, and another that encapsulates all the added debug code. The second mechanism is a runtime infrastructure that replays the application and, without affecting it in any way, invokes the appropriate debug code at the appropriate locations. We describe an implementation of rdb based on LLVM and Pin, and show an example of how rdb's replay debugging helps diagnose a real bug.
In a previous paper, Liu argued for the importance of establishing a precise theoretical foundation for program debugging from first principles. In this paper, we present a first step towards a theoretical exploration...
详细信息
ISBN:
(纸本)9781577354635
In a previous paper, Liu argued for the importance of establishing a precise theoretical foundation for program debugging from first principles. In this paper, we present a first step towards a theoretical exploration of program debugging algorithms. The starting point of our work is the recent debugging approach based on predicate switching. The idea is to switch the outcome of an instance of a predicate to bring the program execution to a successful completion and then identify the fault by examining the switched predicate. However, no theoretical analysis of the approach is available. In this paper, we generalize the above idea, and propose the bounded debugging via multiple predicate switching (BMPS) algorithm, which locates faults through switching the outcomes of instances of multiple predicates to get a successful execution where each loop is executed for a bounded number of times. Clearly, BMPS can be implemented by resorting to a SAT solver. We focus attention on RHS faults, that is, faults that occur in the control predicates and right-hand-sides of assignment statements. We prove that for conditional programs, BMPS is quasi-complete for RHS faults in the sense that some part of any true diagnosis will be returned by BMPS;and for iterative programs, when the bound is sufficiently large, BMPS is also quasi-complete for RHS faults. Initial experimentation with debugging small C programs showed that BMPS can quickly and effectively locate the faults.
The MAD environment is a toolset for debugging parallel message passing programs. In contrast to other existing tools and prototypes, where error detection facilities are implemented by combining sequential debuggers,...
详细信息
ISBN:
(纸本)3540658211
The MAD environment is a toolset for debugging parallel message passing programs. In contrast to other existing tools and prototypes, where error detection facilities are implemented by combining sequential debuggers, MAD is designed as a top-down approach. The main interface for program analysis is the event graph display, a state-time diagram that shows process interaction. Based on this program execution overview, activities on lower levels of abstraction like event inspection and breakpoint setting can be initiated. The advantage of using a global view as starting point is improved program understanding and simplified coordination of debugging activities.
Methods and tools for debugging parallel programs by visualization and animation of the execution behavior of the programs are described. Based on an evaluation and classification of existing visualization environment...
详细信息
ISBN:
(纸本)0780320182
Methods and tools for debugging parallel programs by visualization and animation of the execution behavior of the programs are described. Based on an evaluation and classification of existing visualization environments, the visualization and animation tool VISTOP (VISualization TOol for Parallel Systems) has been developed in a PhD-thesis as part of the integrated tool environment TOPSYS (TOols for Parallel SYStems) for programming distributed memory multiprocessors. VISTOP supports the interactive on-line visualization of the message passing programs based on various views, particularly a process graph based concurrency view for detecting synchronization and communication bugs.
The use of model-based diagnosis for automated program debugging has been reported in several publications. The quality of the obtained results in terms of debugging accuracy is good. Unfortunately, most of the propos...
详细信息
ISBN:
(纸本)9783642142635
The use of model-based diagnosis for automated program debugging has been reported in several publications. The quality of the obtained results in terms of debugging accuracy is good. Unfortunately, most of the proposed models and techniques have very high computational needs. In this paper we focus on giving an explanation for the high computational needs of debugging. In particular, we propose a constraint representation of programs whose behavior is equivalent to the original programs. We further analyze the constraint representation to obtain its hypertree width, which is an indicator for the complexity of the corresponding constraint satisfaction problem. As constraint-based debugging is equivalent to constraint solving, the hypertree width is also an indicator for the debugging complexity. We further show that it is possible to construct arbitrarily complex programs such that their hypertree width is not bounded as indicated in previous literature.
In this paper we present a Conceptual Model for Software Fault Localization (CMSFL), and an Automated Assistant (AASFL) called BUG-DOCTOR to aid programmers with Me problem of software fault localization. A multi dime...
详细信息
ISBN:
(纸本)0769511651
In this paper we present a Conceptual Model for Software Fault Localization (CMSFL), and an Automated Assistant (AASFL) called BUG-DOCTOR to aid programmers with Me problem of software fault localization. A multi dimensional approach is suggested with both shallow and deep reasoning phases to enhance the probability of localizing many types of faults. BUG-DOCTOR uses these two approaches and switches between them to localize the faults. The AASFL is being developed based on this theoretical model. It is programming language independent, capable of handling different programming styles and implementations.
Java program debugging was investigated in programmers who used a software debugging environment (SDE) that provided concurrently displayed, adjacent, multiple and linked representations consisting of the program code...
详细信息
ISBN:
(纸本)3540435611
Java program debugging was investigated in programmers who used a software debugging environment (SDE) that provided concurrently displayed, adjacent, multiple and linked representations consisting of the program code, a functional visualisation of the program, and its output. A modified version of the Restricted Focus Viewer (RFV)[3] - a visual attention tracking system - was employed to measure the degree to which each of the representations was used, and to record switches between representations. Other measures included debugging performance (number of bugs identified, the order in which they were identified, bug discovery latencies, etc.). The aim of this investigation was to address questions such as 'To what extent do programmers use each type of representation?' and 'Are particular patterns of representational use associated with superior debugging performance?'. A within-subject design, and comparison of performance under (matched) RFV/no-RFV task conditions, allowed the use of the RFV as an attention-tracking tool to be validated in the programming domain. The results also provide tentative evidence that superior debugging using multiple-representation SDE's tends to be associated with a) the predominant use of the program code representation, and b) frequent switches between the code representation and the visualisation of the program execution.
The immersion of virtual reality (VR) has transcended the existing experience of multimedia teaching. This paper aims to design a virtual reality eye tracker device to analyze the cognitive process of program debuggin...
详细信息
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 in...
详细信息
The automatic debugging system discussed here is not limited to a specific computer or programming system;it is adaptable to use with most general purpose computer systems. Automatic debugging of programs offers two m...
详细信息
暂无评论