We present a collection of tools, DrDebug, that greatly advances the state-of-the-art of cyclic, interactive debugging of multi-threaded programs based upon the record and replay paradigm. The features of DrDebug significantly increase the efficiency of debugging by tailoring the scope of replay to a buggy execution region or an execution slice of a buggy region. In addition to supporting traditional debugger commands, DrDebug provides commands for recording, replaying, and dynamic slicing with several novel features. First, upon a user’s request, a highly precise dynamic slice is computed that can then be browsed by the user by navigating the dynamic dependence graph with the assistance of our graphical user interface. Second, a dynamic sl...
Multicore is here to stay. To keep up with the hardware innovation, software developers mustmove fro...
Efficient tools are indispensable in the battle against software bugs. In this short paper, we intro...
Reproducing a failure is the first and most important step in debugging because it enables us to und...
Significant time is spent by companies trying to reproduce and fix bugs. We recently proposed a har...
A dynamic program slice is an executable part of a program whose behavior is identical, for the same...
Debugging is a tedious and time-consuming process for software developers. Therefore, providing effe...
Debugging concurrent programs is known to be difficult due to scheduling non-determinism. The techni...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Debugging a faulty program can be very hard and time-consuming. The programmer usually reexecutes hi...
Deterministic replay can help to understand the cause of a failing execution of a multi-threaded pro...
Efficient tools are indispensable in the battle against software bugs during both development and ma...
Significant time is spent by companies trying to reproduce and fix bugs. BugNet is a recent architec...
Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive...
Programmers spend considerable time debugging code. Several tools are available to help them in this...
A very common debugging technique is cyclic debugging. Here the programmer repeats the execution of ...
Multicore is here to stay. To keep up with the hardware innovation, software developers mustmove fro...
Efficient tools are indispensable in the battle against software bugs. In this short paper, we intro...
Reproducing a failure is the first and most important step in debugging because it enables us to und...
Significant time is spent by companies trying to reproduce and fix bugs. We recently proposed a har...
A dynamic program slice is an executable part of a program whose behavior is identical, for the same...
Debugging is a tedious and time-consuming process for software developers. Therefore, providing effe...
Debugging concurrent programs is known to be difficult due to scheduling non-determinism. The techni...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Debugging a faulty program can be very hard and time-consuming. The programmer usually reexecutes hi...
Deterministic replay can help to understand the cause of a failing execution of a multi-threaded pro...
Efficient tools are indispensable in the battle against software bugs during both development and ma...
Significant time is spent by companies trying to reproduce and fix bugs. BugNet is a recent architec...
Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive...
Programmers spend considerable time debugging code. Several tools are available to help them in this...
A very common debugging technique is cyclic debugging. Here the programmer repeats the execution of ...
Multicore is here to stay. To keep up with the hardware innovation, software developers mustmove fro...
Efficient tools are indispensable in the battle against software bugs. In this short paper, we intro...
Reproducing a failure is the first and most important step in debugging because it enables us to und...