Looper: Lightweight Detection of Infinite Loops at Runtime | IEEE Conference Publication | IEEE Xplore

Looper: Lightweight Detection of Infinite Loops at Runtime


Abstract:

When a running program becomes unresponsive, it is often impossible for a user to determine if the program is performing some useful computation or if it has entered an i...Show More

Abstract:

When a running program becomes unresponsive, it is often impossible for a user to determine if the program is performing some useful computation or if it has entered an infinite loop. We present LOOPER, an automated technique for dynamically analyzing a running program to prove that it is non-terminating. LOOPER uses symbolic execution to produce simple non-termination arguments for infinite loops dependent on both program values and the shape of heap. The constructed arguments are verified with an off-the-shelf SMT solver. We have implemented our technique in a prototype tool for Java applications, and we demonstrate our technique's effectiveness on several non-terminating benchmarks, including a reported infinite loop bug in open-source text editor jEdit. Our tool is able to dynamically detect infinite loops deep in the execution of large Java programs with no false warnings, producing symbolic arguments that can aid in debugging non-termination.
Date of Conference: 16-20 November 2009
Date Added to IEEE Xplore: 18 March 2010
ISBN Information:
Print ISSN: 1938-4300
Conference Location: Auckland, New Zealand

Contact IEEE to Subscribe

References

References is not available for this document.