MoonBox: debugging with online slicing and dryrun

  • Authors:
  • Cheng Zhang;Longwen Lu;Hucheng Zhou;Jianjun Zhao;Zheng Zhang

  • Affiliations:
  • Shanghai Jiao Tong University;Shanghai Jiao Tong University;Microsoft Research Asia;Shanghai Jiao Tong University;Microsoft Research Asia

  • Venue:
  • Proceedings of the Asia-Pacific Workshop on Systems
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Efficient tools are indispensable in the battle against software bugs. In this short paper, we introduce two techniques that target different phases of an interactive and iterative debugging session. To make slice-assisted log analysis practical to help fault diagnosis, slicing itself must be done instantaneously. We split the costly slicing computation into online and offline, and employ incremental updates after program edits. The result is a vast reduction of slicing cost. For the benchmarks we tested, slices can be computed in the range of seconds, which is 0.02%~6.5% of the unmodified slicing algorithm. The possibility of running slicing in situ and with instant response time gives rise to the possibility of editing-time validation, which we call dryrun. The idea is that a pair of slices, one forward from root cause and one backward from the bug site, defines the scope to validate a fix. This localization makes it possible to invoke symbolic execution and constraint solving that are otherwise too expensive to use in an interactive debugging environment.