Over the last two decades, advances in software engineering have produced new ways of creating robust, reliable software.Unfortunately, the dream of bug-free software still eludes us.When bugs are discovered in deployed software, software failures and service disruption can lead to significant losses, both monetary and otherwise.The typical failure response process is composed of three phases: failure detection, cause analysis, and solution formulation.To minimize the impact of software failures, it is critical that each of these phases be completed as quickly as possible.This thesis is separated into two parts.In the first part, we propose a general conceptual approach called emph{failure-aware computing} that aims to automate as much of the failure response process as possible.We describe the architecture of this proposed framework, some possible applications, and challenges if it were implemented.We then describe how this framework can be applied to responding to memory corruption errors.In the second part, we describe and evaluate an implementation of part of this framework for diagnosing memory corruption failures.In particular, we discuss a root cause analysis tool we have created that analyzes a program's source code to determine which memory-related program events potentially lead to a memory corruption error.Our tool then monitors the afflicted program's execution and outputs useful information to aid the developer in understanding the root cause of the failure.We finally evaluate our tool's effectiveness in identifying the root cause of memory access errors in both self-written and open-source code.
【 预 览 】
附件列表
Files
Size
Format
View
Automating and Simplifying Memory Corruption Attack Response Using Failure-Aware Computing