Querypoint: moving backwards on wrong values in the buggy execution

  • Authors:
  • Salman Mirghasemi;John J. Barton;Claude Petitpierre

  • Affiliations:
  • ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE, Lausanne, Switzerland;IBM Research - Almaden, San Jose, CA, USA;ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE, Lausanne, Switzerland

  • Venue:
  • Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

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.