One of the most energy-draining and frustrating parts of software development is playing detective with elu-sive bugs. In this paper we argue that automated post-mortem debugging of failures is feasible for real, in-production systems with no runtime recording. We pro-pose reverse execution synthesis (RES), a technique that takes a coredump obtained after a failure and automat-ically computes the suffix of an execution that leads to that coredump. RES provides a way to then play back this suffix in a debugger deterministically, over and over again. We argue that the RES approach could be used to (1) automatically classify bug reports based on their root cause, (2) automatically identify coredumps for which hardware errors (e.g., bad memory)...
Software debugging, which involves localizing, understanding, and removing the cause of a failure, ...
Traditionally, debugging refers to the process of locating the pro-gram portions which are responsib...
Abstract—Debugging is difficult and costly. As a human pro-grammer looks for a bug, it would be help...
Post-mortem debugging is often the last bastion of debugging solutions. It involves analyzing a raw ...
Debugging software is challenging because of the increasing complexity of software and hardware, and...
Debugging real systems is hard, requires deep knowledge of the target code, and is time-consuming. B...
Prototyping and debugging of operating systems and drivers are very tough tasks because of hardware ...
Significant time is spent by companies trying to reproduce and fix bugs. We recently proposed a har...
Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive...
Deterministic replay tools offer a compelling approach to debugging hard-to-reproduce bugs. Recent w...
Debugging real systems is hard, requires deep knowledge of the code, and is time-consuming. Bug repo...
Software crash reproduction is the necessary first step for debugging. Unfortunately, crash reproduc...
Reverse execution provides a programmer with the ability to return a program to a previous state in...
Debugging a faulty program can be very hard and time-consuming. The programmer usually reexecutes hi...
We propose a root-causing procedure for accelerating system-level debug using rule-based techniques....
Software debugging, which involves localizing, understanding, and removing the cause of a failure, ...
Traditionally, debugging refers to the process of locating the pro-gram portions which are responsib...
Abstract—Debugging is difficult and costly. As a human pro-grammer looks for a bug, it would be help...
Post-mortem debugging is often the last bastion of debugging solutions. It involves analyzing a raw ...
Debugging software is challenging because of the increasing complexity of software and hardware, and...
Debugging real systems is hard, requires deep knowledge of the target code, and is time-consuming. B...
Prototyping and debugging of operating systems and drivers are very tough tasks because of hardware ...
Significant time is spent by companies trying to reproduce and fix bugs. We recently proposed a har...
Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive...
Deterministic replay tools offer a compelling approach to debugging hard-to-reproduce bugs. Recent w...
Debugging real systems is hard, requires deep knowledge of the code, and is time-consuming. Bug repo...
Software crash reproduction is the necessary first step for debugging. Unfortunately, crash reproduc...
Reverse execution provides a programmer with the ability to return a program to a previous state in...
Debugging a faulty program can be very hard and time-consuming. The programmer usually reexecutes hi...
We propose a root-causing procedure for accelerating system-level debug using rule-based techniques....
Software debugging, which involves localizing, understanding, and removing the cause of a failure, ...
Traditionally, debugging refers to the process of locating the pro-gram portions which are responsib...
Abstract—Debugging is difficult and costly. As a human pro-grammer looks for a bug, it would be help...