Abstract
This paper describes a compositional analysis algorithm for statically detecting leaks in Java programs. The algorithm is based on separation logic and exploits the concept of bi-abductive inference for identifying the objects which are reachable but no longer used by the program.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Berdine, J., Calcagno, C., O’Hearn, P.: Symbolic execution with separation logic. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 52–68. Springer, Heidelberg (2005)
Calcagno, C., Distefano, D., O’Hearn, P., Yang, H.: Compositional shape analysis by means of bi-abduction. In: POPL, pp. 289–300 (2009)
Distefano, D., O’Hearn, P., Yang, Y.: A local shape analysis based on separation logic. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 287–302. Springer, Heidelberg (2006)
Distefano, D., Parkinson, J.: jstar: towards practical verification for java. In: OOPSLA, pp. 213–226 (2008)
Distefano, D., Filipović, I.: Memory Leaks Detection in Java by Bi-Abductive Inference. Technical Report, Queen Mary University of London (January 2010)
Dor, N., Rodeh, M., Sagiv, M.: Checking cleanness in linked lists. In: Palsberg, J. (ed.) SAS 2000. LNCS, vol. 1824, pp. 115–135. Springer, Heidelberg (2000)
Flanagan, B.: Java in a Nutshell. O’Really, Sebastopol (1996)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Hackett, B., Rugina, R.: Region-based shape analysis with tracked locations. In: POPL, pp. 310–323 (2005)
Hastings, R., Joyce, B.: Purify: Fast detection of memory leaks and access errors. In: Proceedings of the Winter USENIX Conference (1992)
Hauswirth, M., Chilimbi, T.: Low-overhead memory leak detection using adaptive statistical profiling. In: ASPLOS, pp. 156–164 (2004)
Heine, D., Lam, M.: A practical flow-sensitive and context-sensitive c and c++ memory leak detector. In: PLDI, pp. 168–181 (2003)
The java developer’s connection. Internet page, http://bugs.sun.com/bugdatabase
Livshits, V.: Looking for memory leaks, http://www.oracle.com/technology/pub/articles
Orlovich, M., Rugina, R.: Memory leak analysis by contradiction. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 405–424. Springer, Heidelberg (2006)
Mitchell, N., Sevitsky, G.: An automated and lightweight tool for diagnosing memory leaks in large java applications. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 351–377. Springer, Heidelberg (2003)
O’Hearn, P., Reynolds, J., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, p. 1. Springer, Heidelberg (2001)
Pankajakshan, A.: Plug memory leaks in enterprise java applications. Internet page, http://www.javaworld.com/javaworld/jw-03-2006/jw-0313-leak.html
Parkinson, M., Bierman, G.: Separation logic, abstraction and inheritance. In: POPL, pp. 75–86 (2008)
Poddar, I., Minshall, R.: Memory leak detection and analysis in webshere application server (part 1 and 2). Internet page, http://www.ibm.com/developerworks/websphere/library/techarticles/0608_poddar/0608_poddar.html
Sagiv, M., Reps, T., Wilhelm, R.: Solving shape-analysis problems in languages with destructive updating. ACM Trans. Program. Lang. Syst. 20(1), 1–50 (1998)
Shaham, R., Kolodner, E., Sagiv, M.: Automatic removal of array memory leaks in java. In: CC, pp. 50–66 (2000)
Shaham, R., Kolodner, E., Sagiv, M.: Heap profiling for space-efficient java. In: PLDI, pp. 104–113 (2001)
Shaham, R., Kolodner, E., Sagiv, M.: Estimating the impact of heap liveness information on space consumption in java. In: MSP/ISMM, pp. 171–182 (2002)
Shaham, R., Yahav, E., Kolodner, E., Sagiv, M.: Establishing local temporal heap safety properties with applications to compile-time memory management. Sci. Comput. Program. 58(1-2), 264–289 (2005)
Xie, Y., Aiken, A.: Context- and path-sensitive memory leak detection. In: ESEC/SIGSOFT FSE, pp. 115–125 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Distefano, D., Filipović, I. (2010). Memory Leaks Detection in Java by Bi-abductive Inference. In: Rosenblum, D.S., Taentzer, G. (eds) Fundamental Approaches to Software Engineering. FASE 2010. Lecture Notes in Computer Science, vol 6013. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12029-9_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-12029-9_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12028-2
Online ISBN: 978-3-642-12029-9
eBook Packages: Computer ScienceComputer Science (R0)