|
HAVOC: Heap Aware Verifier fOr C programs
Overview HAVOC is a tool for specifying and checking properties of systems software written in C, similar in spirit to the Spec# effort for C#. The tool understands low-level pointer manipulations, internal pointers, and cast operations that are prevalent in systems software. The annotation language of HAVOC allows the expression of richer properties about the program heap and data structures such as linked lists and arrays. HAVOC is a modular verifier. The user provides annotates the program with specifications and HAVOC checks the annotated program modularly, one procedure at a time, using an automated theorem prover. Currently, we are using HAVOC to specify and check complex locking protocols over heap-allocated data structures in Windows, properties of collections such as IRP queues in device drivers, and correctness properties of custom storage allocators. Download
HAVOC version 0.1 is available for download from here!! Publications
Unifying Type Checking and Property
Checking for Low-Level Code
Annotation-based property checking for systems software Back to the Future: Revisiting Precise
Program Verification using SMT Solvers A Reachability Predicate for Analyzing
Low-Level Software Verifying Properties of Well-Founded Linked Lists. Project Members
Summer interns 2008:
Summer interns 2007:
(Past) summer interns:
Associated Groups
|
||||||||