Software error handling is the process of detecting and responding to the occurrence of errors during the execution of a program. Ideally, whenever a runtime error occurs, software systems should respond according to the programmer?s intent. Unfortunately, that is often not the case. Error-handling code is difficult to write, and tends to be poorly understood, poorly documented, and poorly tested. Unsurprisingly, error-handling code is often buggy. Bugs in software error handlers are some of the most pervasive, dangerous, and difficult to detect bugs. Incorrect error-handling is particularly alarming in systems software (e.g., the operating system) because user applications depend on the reliability of systems software. This research aims to gather a better understanding of error handling in systems software through automatic inference of error-handling specifications.

Error-handling specifications describe how the system detects and recovers from errors. This research applies static program analysis techniques to automatically infer error-handling specifications in systems software. This task is particularly challenging because systems software implements numerous failure policies, and error-handling code is often diffused through the system. Furthermore, the analysis of such large code bases often faces scalability problems. Understanding existing error-handling strategies is the first step to ensure systems software is reliable. This understanding also has the potential to lead to the development of new error-handling mechanisms, and new programming language support for error handling. Both of these could have a significant impact on software reliability beyond systems software.

Project Start
Project End
Budget Start
2015-03-15
Budget End
2018-09-30
Support Year
Fiscal Year
2014
Total Cost
$182,500
Indirect Cost
Name
University of California Davis
Department
Type
DUNS #
City
Davis
State
CA
Country
United States
Zip Code
95618