论文标题

Debug-Lepalize-Repair:用于堆操作的共生结构

Debug-Localize-Repair: A Symbiotic Construction for Heap Manipulations

论文作者

Verma, Sahil, Roy, Subhajit

论文摘要

我们提出Wolverine2,这是一种用于操纵程序的综合调试范围内的修复环境。 Wolverine2 provides an interactive debugging environment: while concretely executing a program via on an interactive shell supporting common debugging facilities, Wolverine2 displays the abstract program states (as box-and-arrow diagrams) as a visual aid to the programmer, packages a novel, proof-directed repair algorithm to quickly synthesize the repair patches and a new bug localization algorithm to reduce the search space of repairs. Wolverine2支持生成的补丁的“热绘制”,以提供无缝的调试环境,还促进了新的Debug-Localize-Repair可能性:\ TextIt {规范{规范改进}和\ TextIt {CheckPoint {CheckPoint {基于CheckPoint {基于CheckPoint Hopping}。我们对6400个错误程序(使用自动故障注入生成)评估Wolverine2对单个数据结构,例如单个数据结构,双重链接和圆形链接列表,AVL树,红色树木,溅出的树木和二进制搜索树; Wolverine2可以修复现实程序员等待时间内的所有越野车实例(在大多数情况下不到5秒)。 Wolverine2还可以修复247个(越野车)的学生提交的80%以上,在这些学生中进行了合理的尝试。

We present Wolverine2, an integrated Debug-Localize-Repair environment for heap manipulating programs. Wolverine2 provides an interactive debugging environment: while concretely executing a program via on an interactive shell supporting common debugging facilities, Wolverine2 displays the abstract program states (as box-and-arrow diagrams) as a visual aid to the programmer, packages a novel, proof-directed repair algorithm to quickly synthesize the repair patches and a new bug localization algorithm to reduce the search space of repairs. Wolverine2 supports "hot-patching" of the generated patches to provide a seamless debugging environment, and also facilitates new debug-localize-repair possibilities: \textit{specification refinement} and \textit{checkpoint-based hopping}. We evaluate Wolverine2 on 6400 buggy programs (generated using automated fault injection) on a variety of data-structures like singly, doubly, and circular linked lists, AVL trees, Red-Black trees, Splay Trees and Binary Search Trees; Wolverine2 could repair all the buggy instances within realistic programmer wait-time (less than 5 sec in most cases). Wolverine2 could also repair more than 80\% of the 247 (buggy) student submissions where a reasonable attempt was made.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源