Detecting and Escaping Infinite Loops with Bolt
We present Bolt, a novel system for escaping infinite loops. If the user
suspects that an executing program is stuck in an infinite loop, the user can
invoke Bolt, which attaches to the running process and diagnoses if the
program is executing in the infinite loop. If that is the case, the user can
direct Bolt to explore multiple strategies to escape the infinite loop,
restore the responsiveness of the program and recover useful output.
Bolt operates on stripped x86 and x64 binaries, analyzes both single-thread
and multi-threaded programs, dynamically attaches to the program as-needed,
dynamically detects the loops in a program and creates program state
checkpoints to enable exploration of different escape strategies. This makes
it possible for Bolt to detect and escape infinite loops in off-the-shelf
software, without available source code, or overhead in standard production
use.
Distribution Tarball
Contains all of the source code needed to compile and use the Bolt system. Currently the entire system is compatiable only on Linux x86/x64 systems. Documentation is included in the tarball.
bolt-0.1.tar.gz (coming soon)
Publications
Escaping Infinite Loops with Bolt
Michael Kling
MIT Master's in Engineering Thesis 2012
(Thesis)
Detecting and Escaping Infinite Loops with Jolt
Michael Carbin, Sasa Misailovic, Michael Kling, and Martin Rinard
To Appear In Proceedings of European Conference on Object-Oriented Programming (ECOOP) 2011
(Paper) (Appendix)
Press Coverage
MIT News Article
Slashdot Article
Ars Technica Article
People
Michael Kling
Michael Carbin
Sasa Misailovic
Martin Rinard