Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Scalable omniscient debugging

Published: 21 October 2007 Publication History

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.

References

[1]
M. Blasgen and K. Eswaran. Storage and access in relational databases. IBM Systems Journal, 16(4):363, 1977.
[2]
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.
[3]
É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.
[4]
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.
[5]
Jim des Rivières and John Wiegand. Eclipse: A platform for integrating development tools. IBM Systems Journal, 43(2):371--383, 2004.
[6]
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.
[7]
Mireille Ducassé. Opium: An extendable trace analyzer for prolog. Journal of Logic Programming, 39(1--3):177--223, 1999.
[8]
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.
[9]
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.
[10]
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.
[11]
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.
[12]
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.
[13]
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.
[14]
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.
[15]
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.
[16]
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.
[17]
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.
[18]
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.
[19]
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.
[20]
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.
[21]
OmniCore. Codeguide back-in-time debugger.
[22]
Guillaume Pothier. Benchmarks of COTS database management systems. Technical Report TR/DCC-2006-16, University of Chile, October 2006.
[23]
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.
[24]
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.
[25]
Richard Snodgrass. Monitoring in a software development environment: A relational approach. SIGPLAN Not., 19(5):124--131, 1984.
[26]
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.
[27]
É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).
[28]
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.

Cited By

View all
  • (2023)Emerging Aspects of Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch13(529-579)Online publication date: 21-Apr-2023
  • (2022)Practical multiverse debugging through user-defined reductionsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems10.1145/3550355.3552447(87-97)Online publication date: 23-Oct-2022
  • (2022)A Study on Recent Advances in Artificial Intelligence and Future Prospects of Attaining SuperintelligenceProceedings of Third International Conference on Communication, Computing and Electronics Systems10.1007/978-981-16-8862-1_57(879-892)Online publication date: 20-Mar-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 42, Issue 10
Proceedings of the 2007 OOPSLA conference
October 2007
686 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1297105
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
    October 2007
    728 pages
    ISBN:9781595937865
    DOI:10.1145/1297027
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 October 2007
Published in SIGPLAN Volume 42, Issue 10

Check for updates

Author Tags

  1. execution traces
  2. interface components
  3. omniscient debugging
  4. partial traces
  5. scalability
  6. specialized distributed database

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)25
  • Downloads (Last 6 weeks)1
Reflects downloads up to 04 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Emerging Aspects of Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch13(529-579)Online publication date: 21-Apr-2023
  • (2022)Practical multiverse debugging through user-defined reductionsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems10.1145/3550355.3552447(87-97)Online publication date: 23-Oct-2022
  • (2022)A Study on Recent Advances in Artificial Intelligence and Future Prospects of Attaining SuperintelligenceProceedings of Third International Conference on Communication, Computing and Electronics Systems10.1007/978-981-16-8862-1_57(879-892)Online publication date: 20-Mar-2022
  • (2021)Speak2Code: A Multi-Utility Program based on Speech Recognition that Allows you to Code Through Speech CommandsInternational Journal of Advanced Research in Science, Communication and Technology10.48175/IJARSCT-827(46-50)Online publication date: 8-Mar-2021
  • (2021)NOD4J: Near-Omniscient Debugging Tool for Java Using Size-Limited Execution TraceScience of Computer Programming10.1016/j.scico.2021.102630(102630)Online publication date: Feb-2021
  • (2021)A Generic Back-End for Exploratory ProgrammingTrends in Functional Programming10.1007/978-3-030-83978-9_2(24-43)Online publication date: 17-Feb-2021
  • (2019)Effective spectrum-based technique for software fault findingInternational Journal of Information Technology10.1007/s41870-019-00347-112:3(677-682)Online publication date: 6-Aug-2019
  • (2019)A Systematic Review on Program Debugging TechniquesSmart Computing Paradigms: New Progresses and Challenges10.1007/978-981-13-9680-9_16(193-199)Online publication date: 1-Dec-2019
  • (2018)Pointer provenance in a capability architectureProceedings of the 10th USENIX Conference on Theory and Practice of Provenance10.5555/3319379.3319382(2-2)Online publication date: 11-Jul-2018
  • (2018)Bidirectional evaluation with direct manipulationProceedings of the ACM on Programming Languages10.1145/32764972:OOPSLA(1-28)Online publication date: 24-Oct-2018
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media