DocumentCode :
2745134
Title :
Path-Sensitive Inference of Function Precedence Protocols
Author :
Ramanathan, Murali Krishna ; Grama, Ananth ; Jagannathan, Suresh
Author_Institution :
Dept. of Comput. Sci., Purdue Univ., West Lafayette, IN
fYear :
2007
fDate :
20-26 May 2007
Firstpage :
240
Lastpage :
250
Abstract :
Function precedence protocols define ordering relations among function calls in a program. In some instances, precedence protocols are well-understood (e.g., a call to pthread_mutex_init must always be present on all program paths before a call to pthread_mutex_lock). Oftentimes, however, these protocols are neither well- documented, nor easily derived. As a result, protocol violations can lead to subtle errors that are difficult to identify and correct. In this paper, we present CHRONICLER, a tool that applies scalable inter-procedural path-sensitive static analysis to automatically infer accurate function precedence protocols. Chronicler computes precedence relations based on a program´s control-flow structure, integrates these relations into a repository, and analyzes them using sequence mining techniques to generate a collection of feasible precedence protocols. Deviations from these protocols found in the program are tagged as violations, and represent potential sources of bugs. We demonstrate CHRONICLER´s effectiveness by deriving protocols for a collection of benchmarks ranging in size from 66 K to 2 M lines of code. Our results not only confirm the existence of bugs in these programs due to precedence protocol violations, but also highlight the importance of path sensitivity on accuracy and scalability.
Keywords :
software tools; systems analysis; control-flow structure; function precedence protocols; interprocedural path-sensitive static analysis; path-sensitive inference; sequence mining techniques; Automatic generation control; Computer bugs; Computer science; Data structures; Error correction; Libraries; Programming; Protocols; Scalability; Sockets;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering, 2007. ICSE 2007. 29th International Conference on
Conference_Location :
Minneapolis, MN
ISSN :
0270-5257
Print_ISBN :
0-7695-2828-7
Type :
conf
DOI :
10.1109/ICSE.2007.63
Filename :
4222586
Link To Document :
بازگشت