Abstract
Omniscient debuggers make it possible to navigate backwards in time within a program execution trace, drastically improving the task of debugging complex applications. Still, they are mostly ignored in practice due to the challenges raised by the potentially huge size of the execution traces. This paper shows that omniscient debugging can be realistically realized through the use of different techniques addressing efficiency, scalability and usability. We present TOD, a portable Trace-Oriented Debugger for Java, which combines an efficient instrumentation for event generation, a specialized distributed database for scalable storage and efficient querying, support for partial traces in order to reduce the trace volume to relevant events, and innovative interface components for interactive trace navigation and analysis in the development environment. Provided a reasonable infrastructure, the performance of TOD allows a responsive debugging experience in the face of large programs.
- M. Blasgen and K. Eswaran. Storage and access in relational databases. IBM Systems Journal, 16(4):363, 1977.Google Scholar
Digital Library
- Bob Boothe. Efficient algorithms for bidirectional debugging. In PLDI'00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, pages 299--310, New York, NY, USA, 2000. ACM Press. Google Scholar
Digital Library
- Éric Bruneton, Romain Lenglet, and Thierry Coupaye. ASM: a code manipulation tool to implement adaptable systems. In Proceedings of the ASF (ACM SIGOPS France) Journées Composants 2002: Adaptable and extensible component systems, November 2002.Google Scholar
- Mariano P. Consens, Masum Z. Hasan, and Alberto O. Mendelzon. Visualizing and querying distributed event traces with Hy+. In Proceedings of the International Conference on Application of Databases, volume 819, pages 123--141. LNCS, 1994.Google Scholar
Cross Ref
- Jim des Rivières and John Wiegand. Eclipse: A platform for integrating development tools. IBM Systems Journal, 43(2):371--383, 2004. Google Scholar
Digital Library
- Mireille Ducassé. Coca: an automated debugger for c. In ICSE'99: Proceedings of the 21st international conference on Software engineering, pages 504--513, Los Alamitos, CA, USA, 1999. IEEE Computer Society Press. Google Scholar
Digital Library
- Mireille Ducassé. Opium: An extendable trace analyzer for prolog. Journal of Logic Programming, 39(1--3):177--223, 1999.Google Scholar
Cross Ref
- Stuart I. Feldman and Channing B. Brown. Igor: a system for program debugging via reversible execution. In PADD'88: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging, pages 112--123, New York, NY, USA, 1988. ACM Press. Google Scholar
Digital Library
- Abdelwahab Hamou-Lhadj and Timothy C. Lethbridge. Compression techniques to simplify the analysis of large execution traces. In IWPC'02: Proceedings of the 10th International Workshop on Program Comprehension, page 159, Washington, DC, USA, 2002. IEEE Computer Society. Google Scholar
Digital Library
- Charles R. Hill. A real-time microprocessor debugging technique. In SIGSOFT'83: Proceedings of the symposium on High-level debugging, pages 145--148, New York, NY, USA, 1983. ACM Press. Google Scholar
Digital Library
- Christoph Hofer, Marcus Denker, and Stéphane Ducasse. Implementing a backward--in--time debugger. In Proceedings of NODe'06, volume P-88, pages 17--32. Lecture Notes in Informatics, 2006.Google Scholar
- Dean F. Jerding and John T. Stasko. The information mural: A technique for displaying and navigating large information spaces. IEEE Trans. Vis. Comput. Graph., 4(3):257--271, 1998. Google Scholar
Digital Library
- Andrew J. Ko and Brad A. Myers. Designing the whyline: a debugging interface for asking questions about program behavior. In Elizabeth Dykstra-Erickson and Manfred Tscheligi, editors, CHI, pages 151--158. ACM, 2004. Google Scholar
Digital Library
- Carol H. LeDoux and D. Stott Parker, Jr. Saving traces for ada debugging. In Ada in Use, Proceedings of the Ada International Conference, pages 97--108, September 1985. Published as ACM Ada Letters, volume 5, number 2. Google Scholar
Digital Library
- Bil Lewis. Debugging backwards in time. In M. Ronsse and K. De Bosschere, editors, Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003), Ghent, Belgium, 2003.Google Scholar
- Henry Lieberman. Reversible Object-Oriented interpreters. In Jean Bézivin, Jean-Marie Hullot, Pierre Cointe, and Henry Lieberman, editors, ECOOP, volume 276 of Lecture Notes in Computer Science, pages 11--19. Springer, 1987. Google Scholar
Digital Library
- Henry Lieberman and Christoper Fry. ZStep 95: A reversible, animated source code stepper. In John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, editors, Software Visualization - Programming as a Multimedia Experience, pages 277--292, Cambridge, MA-London, 1998. The MIT Press.Google Scholar
- Ian MacLarty, Zoltan Somogyi, and Mark Brown. Divide-and-query and subterm dependency tracking in the mercury declarative debugger. In AADEBUG'05: Proceedings of the sixth international symposium on Automated analysis-driven debugging, pages 59--68, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- Michael Martin, Benjamin Livshits, and Monica S. Lam. Finding application errors and security flaws using PQL: a program query language. ACM SIGPLAN Notices, 40(10):365--383, October 2005. Google Scholar
Digital Library
- O. Y. Nickolayev, P. C. Roth, and D. A. Reed. Real-time statistical clustering for event trace reduction. The International Journal of Supercomputer Applications and High Performance Computing, 11(2):144--159, Summer 1997.Google Scholar
Digital Library
- OmniCore. Codeguide back-in-time debugger.Google Scholar
- Guillaume Pothier. Benchmarks of COTS database management systems. Technical Report TR/DCC-2006-16, University of Chile, October 2006.Google Scholar
- Yasushi Saito. Jockey: a user-space library for record-replay debugging. In Proceedings of the sixth international symposium on Automated analysis-driven debugging (AADEBUG 2005), pages 69--76, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- Praveen Seshadri, Miron Livny, and Raghu Ramakrishnan. Sequence query processing. SIGMOD Record (ACM Special Interest Group on Management of Data), 23(2):430--441, June 1994. Google Scholar
Digital Library
- Richard Snodgrass. Monitoring in a software development environment: A relational approach. SIGPLAN Not., 19(5):124--131, 1984. Google Scholar
Digital Library
- Michael Stonebraker, Chuck Bear, Ugur Cetintemel, Mitch CÇherniack, Tingjian Ge, Nabil Hachem, Stavros Harizopoulos, John Lifter, Jennie Rogers, and Stanley B. Zdonik. One size fits all? part 2: Benchmarking studies. In Conference on Innovative Data Systems Research (CIDR 2007), pages 173--184. www.crdrdb.org, 2007.Google Scholar
- Éric Tanter, Jacques Noyé, Denis Caromel, and Pierre Cointe. Partial behavioral reflection: Spatial and temporal selection of reification. In Ron Crocker and Guy L. Steele, Jr., editors, Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2003), pages 27--46, Anaheim, CA, USA, October 2003. ACM Press. ACM SIGPLAN Notices, 38(11). Google Scholar
Digital Library
- Andy Zaidman and Serge Demeyer. Managing trace data volume through a heuristical clustering process based on event execution frequency. In CSMR'04: Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04), page 329, Washington, DC, USA, 2004. IEEE Computer Society. Google Scholar
Digital Library
Index Terms
Scalable omniscient debugging
Recommendations
Scalable omniscient debugging
OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applicationsOmniscient debuggers make it possible to navigate backwards in time within a program execution trace, drastically improving the task of debugging complex applications. Still, they are mostly ignored in practice due to the challenges raised by the ...
Efficient and scalable omniscient debugging for model transformations
This paper discusses a technique for supporting omniscient debugging for model transformations, which are used to define core operations on software and system models. Similar to software systems developed using general-purpose languages, model ...
Trace-based debugging for advanced-dispatching programming languages
ICOOOLPS '15: Proceedings of the 10th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and SystemsAdvanced-dispatching programming languages allow to implicitly alter the behaviour of a program, depending on run-time program context. While this improves modularity, it also impedes comprehensibility. The use of advanced-dispatching programming ...







Comments