ComputingComputer ScienceComputer SystemsFault ToleranceFault-tolerant ComputingFault-tolerant SystemsMemory ManagementPatch AnalysisPatch ManagementRuntime EnvironmentsRuntime SystemsSoftware Fault ToleranceBug FixingCheckpointsDiagnostic ReportsOn-site Diagnostic TestingRuntime System ArchitectureSystem Availability Analysis
Memory bugs in C/C++ programs severely affect system availability and security. This paper presents First-Aid, a lightweight runtime system that survives software failures caused by common memory management bugs and prevents future failures by the same bugs during production runs. Upon a failure, First-Aid diagnoses the bug type and identifies the memory objects that trigger the bug. To do so, it rolls back the programto previous checkpoints and uses two types of environmental changes that can prevent or expose memory bug manifestation during re-execution. Based on the diagnosis, First-Aid generates and applies runtime patches to avoid the memory bug and prevent its reoccurrence. Furthermore, First-Aid validates the consistent effects of the runtime patches and generates on-site diagnostic reports to assist developers in fixing the bugs.
41
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · 2005 · 2.3K citations
Nicholas Nethercote, Julian Seward · 2007 · 2.3K citations
Software rejuvenation: analysis, module and applications
Yennun Huang, Chandra M. R. Kintala, N. Kolettis et al. · 2002 · 924 citations
Programmers use slices when debugging
Mark Weiser · Communications of the ACM · 1982 · 762 citations · Full text