kirancodes.me
To Proof Maintenance & Beyond!

Synergistic debug-repair of heap manipulations

Sahil Verma, Subhajit Roy

Abstract

We present Wolverine, an integrated Debug-Repair environment for heap manipulating programs. Wolverine facilitates stepping through a concrete program execution, provides visualizations of the abstract program states (as box-and-arrow diagrams) and integrates a novel, proof-directed repair algorithm to synthesize repair patches. To provide a seamless environment, Wolverine supports "hot-patching" of the generated repair patches, enabling the programmer to continue the debug session without requiring an abort-compile-debug cycle. We also propose new debug-repair possibilities, "specification refinement" and "specification slicing" made possible by Wolverine. We evaluate our framework on 1600 buggy programs (generated using fault injection) on a variety of data-structures like singly, doubly and circular linked-lists, Binary Search Trees, AVL trees, Red-Black trees and Splay trees; Wolverine could repair all the buggy instances within reasonable time (less than 5 sec in most cases). We also evaluate Wolverine on 247 (buggy) student submissions; Wolverine could repair more than 80% of programs where the student had made a reasonable attempt.

BibTeX
@inproceedings{Verma-Roy:FSE17,
  author    = {Sahil Verma and
               Subhajit Roy},
  title     = {Synergistic debug-repair of heap manipulations},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {163--173},
  publisher = {{ACM}},
  year      = {2017},
}

Related papers