The Omission Finder for Debugging What-Should-Have-Happened Bugs in Object-Oriented Programs (bibtex)
by Kouhei Sakurai and Hidehiko Masuhara
Abstract:
Trace-based debuggers help a debugging process by displaying a history of executed operations with their parameters in a run of a program. However, those debuggers are unable to provide any clues when a program does not perform operations that ought to occur. This paper proposes a novel feature called the omission finder for trace-based debuggers. This feature correlates points-to analysis results with an execution history to show operations that could have been but actually were not performed on a specified instance if the program behaved differently. We implemented the omission finder on top of an existing trace-based debugger, and confirmed reduction of the number of debugging steps with an omission bug in a real-world program. Our user-study also showed reduction of debugging times with programs containing omission bugs.
Reference:
The Omission Finder for Debugging What-Should-Have-Happened Bugs in Object-Oriented Programs (Kouhei Sakurai and Hidehiko Masuhara), In In Proceedings of The 30th ACM/SIGAPP Symposium On Applied Computing (SAC 2015), 2015.
Bibtex Entry:
@inproceedings{sakurai2015sac,
  organization = {{ACM}},
  days = {13--17},
  month = apr,
  location = {Salamanca, Spain},
  year = 2015,
  pdf = {sac2015.pdf},
  author = {Kouhei Sakurai and Hidehiko Masuhara},
  title = {The Omission Finder for Debugging What-Should-Have-Happened Bugs in Object-Oriented Programs},
  doi = {10.1145/2695664.2695735},
  booktitle = {In Proceedings of The 30th ACM/SIGAPP Symposium On Applied Computing (SAC 2015)},
  pages = {1962--1969},
  annote = {OOPS! Track},
  date = {2015-04-13 .. 2015-04-17},
  keywords = {Java, Back-in-time debugger, Omniscent debugging, Traced-based debugger},
  abstract = {Trace-based debuggers help a debugging process by displaying a history of executed operations with their parameters in a run of a program. However, those debuggers are unable to provide any clues when a program does not perform operations that ought to occur. This paper proposes a novel feature called the omission finder for trace-based debuggers. This feature correlates points-to analysis results with an execution history to show operations that could have been but actually were not performed on a specified instance if the program behaved differently. We implemented the omission finder on top of an existing trace-based debugger, and confirmed reduction of the number of debugging steps with an omission bug in a real-world program. Our user-study also showed reduction of debugging times with programs containing omission bugs.}
}
Powered by bibtexbrowser