Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2025113.2025184acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
demonstration

Querypoint: moving backwards on wrong values in the buggy execution

Published: 09 September 2011 Publication History

Abstract

As developers debug, they often have to seek the origins of wrong values they see in their debugger. This search must be performed backwards in time since the code causing the wrong value is executed before the wrong value appears. Therefore, locating the origin of wrong values with breakpoint- or log- based debuggers demands persistence and significant experience.
Querypoint, is a Firefox plugin that enhances the popular Firebug JavaScript debugger with a new, practical feature called lastChange. lastChange automatically locates the last point at which a variable or an object property has been changed. Starting from a program suspended on a breakpoint, the lastChange algorithm applies queries to the live program during re-execution, recording the call stack and limited program state each time the property value changes. When the program halts again on the breakpoint, it shows the call stack and program state at the last change point. To evaluate the usability and effectiveness of Querypoint we studied four experienced JavaScript developers applying the tool to two test cases.

References

[1]
S. Bhansali, W. Chen, S. de Jong, A. Edwards, R. Murray, M. Drinić, D. Mihočka, J. Chau. Framework for instruction-level tracing and analysis of program executions. In International Conference on Virtual Execution Environments(VEE),June, 2006.
[2]
Bond(2007)}M.D. Bond, N. Nethercote, S.W. Kent, S.Z. Guyer, and K.S. McKinley. Tracking bad apples: reporting the origin of null and undefined value errors. In 22nd annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications(OOPSLA),October, 2007.
[3]
B. Boothe. Efficient algorithms for bidirectional debugging. In Conference on Programming Language Design and Implementation(PLDI),June, 2000.
[4]
A.J. Ko, and B.A. Myers. Debugging reinvented: asking and answering why and why not questions about program behavior. In 30th international conference on Software engineering(ICSE),May, 2008.
[5]
T.D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits In 28th international conference on Software engineering(ICSE),May, 2006.
[6]
B. Lewis, and M. Ducasse. Using events to debug Java programs backwards in time. In Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications(OOPSLA),2003.
[7]
K. Maruyama, and T. Kazutaka. Debugging with Reverse Watchpoint. In Proceedings of the Third International Conference on Quality Software,2003.
[8]
S. Mirghasemi, J.J. Barton, and C. Petitpierre. Debugging by last Change. Technical Report. EPFL-REPORT-164250, 2011.
[9]
Pothier(2007)}G. Pothier, É. Tanter, and J. Piquer. Scalable omniscient debugging. In 22nd annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications(OOPSLA),October, 2007.

Cited By

View all
  • (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
  • (2020)Backward Slicing Analysis on Debug Log for Crash ComprehensionProceedings of the 2020 9th International Conference on Software and Computer Applications10.1145/3384544.3384560(258-263)Online publication date: 18-Feb-2020
  • (2018)Detecting speech act types in developer question/answer conversations during bug repairProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236031(491-502)Online publication date: 26-Oct-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
September 2011
548 pages
ISBN:9781450304436
DOI:10.1145/2025113
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 September 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. breakpoint
  2. debugging
  3. lastchange
  4. locating defects
  5. logging
  6. querypoint
  7. watchpoint

Qualifiers

  • Demonstration

Conference

ESEC/FSE'11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (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
  • (2020)Backward Slicing Analysis on Debug Log for Crash ComprehensionProceedings of the 2020 9th International Conference on Software and Computer Applications10.1145/3384544.3384560(258-263)Online publication date: 18-Feb-2020
  • (2018)Detecting speech act types in developer question/answer conversations during bug repairProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236031(491-502)Online publication date: 26-Oct-2018
  • (2015)An Eye-Tracking Study of Java Programmers and Application to Source Code SummarizationIEEE Transactions on Software Engineering10.1109/TSE.2015.244223841:11(1038-1054)Online publication date: 1-Nov-2015
  • (2014)Improving automated source code summarization via an eye-tracking study of programmersProceedings of the 36th International Conference on Software Engineering10.1145/2568225.2568247(390-401)Online publication date: 31-May-2014

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