Best-Effort Failure Reconstruction Using CSI: Crash Scene Investigation
When a program fails, it leaves behind fragmentary clues as to what went wrong: core dumps, stack traces, log files, and so on. In this talk I describe CSI: Crash Scene Investigation, which puts these postmortem clues to work. CSI uses lightweight instrumentation and compile-time optimization to improve the quality of clues left behind in the event of a failure. After failure occurs, CSI gathers clues and performs a best-effort reconstruction of events leading up to the final, fatal blow. Our hybrid static/dynamic approach adds minimal run-time cost while providing rich, informative context in support of human debugging efforts.