ACM SIGSOFT Softw. Eng. Notes | 2019

Automatic Data Structure Repair usingSeparation Logic

 
 
 
 

Abstract


Software systems are often shipped and deployed with both known and unknown bugs. On-the-fly program repairs, which handle runtime errors and allow programs to continue successfully, can help software reliability, e.g., by dealing with inconsistent or corrupted data without interrupting the runni program. We report on our work-in-progress that repairs dat structure using separation logic. Our technique, inspired by existing works on specification-based repair, takes as input specification written in a separation logic formula and a concrete data structure that fails that specification, and performs on-thefly repair to make the data conforms with the specification. The use of separation logic allows us to compactly and precisely represent desired properties of data structures and use existing analyses in separation logic to detect and repair bugs in complex data structures. We have developed a prototype, called STARFIX, to repair invalid Java data structures violating given specifications in separation logic. Preliminary results show that tool can efficiently detect and repair inconsistent data structures including lists and trees.

Volume 43
Pages 66
DOI 10.1145/3282517.3282528
Language English
Journal ACM SIGSOFT Softw. Eng. Notes

Full Text