Finding Error-propagation Bugs in Large Software Systems Using Static Analysis

Finding Error-propagation Bugs in Large Software Systems Using Static Analysis
Author :
Publisher :
Total Pages : 0
Release :
ISBN-10 : OCLC:819588509
ISBN-13 :
Rating : 4/5 ( Downloads)

Book Synopsis Finding Error-propagation Bugs in Large Software Systems Using Static Analysis by :

Download or read book Finding Error-propagation Bugs in Large Software Systems Using Static Analysis written by and published by . This book was released on 2012 with total page 0 pages. Available in PDF, EPUB and Kindle. Book excerpt: Incorrect error handling is a longstanding problem in many large software systems. Despite accounting for a significant portion of the code, error handling is one of the least understood, documented, and tested parts of a system. Ideally, some action should be taken when a run-time error occurs (e.g., error notification, attempted recovery, etc.). Incorrect error handling in system software is especially dangerous, as it can lead to serious problems such as system crashes, silent data loss, and corruption. Most system software today is written in C, which does not provide support for exception handling. Consequently the return-code idiom is commonly used in large C programs, including operating systems: run-time errors are represented as integer codes, and these error codes propagate through the program using conventional mechanisms such as variable assignments and function return values. In this dissertation, I present my work on developing and applying static program analyses to find error-propagation bugs in system software that uses the return-code idiom. I give an overview of an interprocedural context- and flow-sensitive analysis that tracks the propagation of errors. This analysis is formalized using weighted pushdown systems. I describe how this analysis is used to find a variety of error-propagation bugs, such as dropped errors, misused error-valued pointers, and error-code mismatches between source code and error-reporting program documentation. I present results for numerous real-world, widely-used Linux file systems such as ext3 and ReiserFS, and Linux device drivers, where we have found hundreds of confirmed error-propagation bugs. Additionally, I show that the error-propagation bugs described in this dissertation also occur in widely-used applications such as the Mozilla Firefox web browser, which is written in C++.


Finding Error-propagation Bugs in Large Software Systems Using Static Analysis Related Books

Finding Error-propagation Bugs in Large Software Systems Using Static Analysis
Language: en
Pages: 0
Authors:
Categories:
Type: BOOK - Published: 2012 - Publisher:

GET EBOOK

Incorrect error handling is a longstanding problem in many large software systems. Despite accounting for a significant portion of the code, error handling is o
From Uncertainty to Bugs
Language: en
Pages: 228
Authors: Theodore Kremenek
Categories:
Type: BOOK - Published: 2008 - Publisher:

GET EBOOK

Static Analysis for Bug Finding in Systems Software
Language: en
Pages: 386
Authors: Andy C. Chou
Categories:
Type: BOOK - Published: 2003 - Publisher:

GET EBOOK

Software Verification and Analysis
Language: en
Pages: 229
Authors: Janusz Laski
Categories: Computers
Type: BOOK - Published: 2009-04-29 - Publisher: Springer Science & Business Media

GET EBOOK

“The situation is good, but not hopeless” (Polish folk wisdom) The text is devoted to the Software Analysis and Testing (SAT) methods and s- porting tools f
Unlikely Paths
Language: en
Pages:
Authors: Daniel Christopher DeFreez
Categories:
Type: BOOK - Published: 2019 - Publisher:

GET EBOOK

This dissertation is about error handling in software, written in C, that uses the return-code idiom. The return-code idiom is a widely prevalent error-handling