Software Profiling for Deterministic Replay Debugging of User Code

  • Authors:
  • Satish Narayanasamy;Cristiano Pereira;Brad Calder

  • Affiliations:
  • Department of Computer Science and Engineering, University of California, San Diego, {satish, cpereira, calder}@cs.ucsd.edu;Department of Computer Science and Engineering, University of California, San Diego, {satish, cpereira, calder}@cs.ucsd.edu;Department of Computer Science and Engineering, University of California, San Diego, {satish, cpereira, calder}@cs.ucsd.edu

  • Venue:
  • Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Significant time is spent by companies in trying to reproduce and fix bugs in their software. The process of testing and debugging can immensely benefit from a tool that supports Deterministic Replay Debugging (DRD). A tool that supports DRD will allow a user to record a program's execution in a log, and to deterministically replay every single instruction executed as part of the application using the log. In this paper, we present the BugNet software tool which can support DRD. It can handle all forms of non-determinism, including the non-determinism due to thread interactions in a multi-threaded application. Since the BugNet tool is operating system independent, a program execution that fails in a particular user's environment can be easily captured by the user in a log, and later reproduced by a developer working in a completely different environment. We also empirically quantify certain variables relevant to the DRD process. This includes anempirical analysis, that quantifies how much of a program execution has to belogged and replayed in order to understand the root cause of a bug. Further, we examine the potential benefit of using dynamic slicing along with our deterministic replay debugger.