Date of Award
1-1-2016
Document Type
Masters Thesis
Degree Name
M.S.
Organizational Unit
Daniel Felix Ritchie School of Engineering and Computer Science, Computer Science
First Advisor
Matthew J. Rutherford, Ph.D.
Second Advisor
Chris Gauthier-Dickey
Third Advisor
Davor Balzar
Keywords
Debugging, Omniscient, Software, Web
Abstract
Debugging can be an extremely expensive and time-consuming task for a software developer. To find a bug, the developer typically needs to navigate backwards through infected states and symptoms of the bug to find the initial defect. Modern debugging tools are not designed for navigating back-in-time and typically require the user to jump through hoops by setting breakpoints, re-executing, and guessing where errors occur. Omniscient debuggers offer back-in-time debugging capabilities to make this task easier. These debuggers trace the program allowing the user to navigate forwards and backwards through the execution, examine variable histories, and visualize program data and control flow. Presented in this thesis is PECCit, an omniscient debugger designed for backend web development. PECCit traces web frameworks remotely and provides a browser-based IDE to navigate through the trace. The user can even watch a preview of the web page as it's being built line-by-line using a novel feature called capturing. To evaluate, PECCit was used to debug real-world problems provided by users of two Content Management Systems: WordPress and Drupal. In these case studies, PECCit's features and debugging capabilities are demonstrated and contrasted with standard debugging techniques.
Publication Statement
Copyright is held by the author. User is responsible for all copyright compliance.
Rights Holder
Zachary Ryan Azar
Provenance
Received from ProQuest
File Format
application/pdf
Language
en
File Size
164 p.
Recommended Citation
Azar, Zachary Ryan, "PECCit: An Omniscient Debugger for Web Development" (2016). Electronic Theses and Dissertations. 1099.
https://digitalcommons.du.edu/etd/1099
Copyright date
2016
Discipline
Computer Science