@inproceedings{3f87e79a60634be9bf561e39e2a12af7,
title = "Automatic fault location for data structures",
abstract = "Specification-based data structure verification is a powerful debugging technique. In this work we combine specification-based data structure verification with automatic detection of faulty program statements that corrupt data structures. The user specifies the consistency constraints for dynamic data structures as relationships among the nodes of a memory graph. Our system detects constraint violations to identify corrupted data structures during program execution and then automatically locates faulty code responsible for data structure corruption. Our approach offers two main advantages: (1) a highly precise automatic fault location method, and (2) a simple specification language. We employ incremental constraint checking for time efficient constraint matching and fault location. On average, while Tarantula statistical debugging technique narrows the fault to 10 statements, our technique narrows it to ≈ 4 statements.",
keywords = "Constraint checks, Data structure error, Fault location, Memory graph",
author = "Vineet Singh and Rajiv Gupta and Iulian Neamtiu",
note = "Publisher Copyright: {\textcopyright} 2016 ACM.; 25th International Conference on Compiler Construction, CC 2016 ; Conference date: 17-03-2016 Through 18-03-2016",
year = "2016",
month = mar,
day = "17",
doi = "10.1145/2892208.2892215",
language = "English (US)",
series = "Proceedings of CC 2016: The 25th International Conference on Compiler Construction",
publisher = "Association for Computing Machinery, Inc",
pages = "99--109",
booktitle = "Proceedings of CC 2016",
}