A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Static detection of dynamic memory errors
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
SpC: synthesis of pointers in C: application of pointer analysis to the behavioral synthesis from C
Proceedings of the 1998 IEEE/ACM international conference on Computer-aided design
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A static analyzer for finding dynamic programming errors
Software—Practice & Experience
Effective synchronization removal for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Finding bugs with a constraint solver
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Behavioral consistency of C and verilog programs using bounded model checking
Proceedings of the 40th annual Design Automation Conference
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Static analysis for bug finding in systems software
Static analysis for bug finding in systems software
Low-overhead memory leak detection using adaptive statistical profiling
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
Region-based shape analysis with tracked locations
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scalable error detection using boolean satisfiability
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static detection of leaks in polymorphic containers
Proceedings of the 28th international conference on Software engineering
Practical memory leak detection using guarded value-flow analysis
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
An overview of the saturn project
PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Detecting and eliminating memory leaks using cyclic memory allocation
Proceedings of the 6th international symposium on Memory management
From uncertainty to belief: inferring the specification within
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Object ownership profiling: a technique for finding and fixing memory leaks
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Shape Analysis by Refining on Abstract Evaluation Path
Electronic Notes in Theoretical Computer Science (ENTCS)
Precise memory leak detection for java software using container profiling
Proceedings of the 30th international conference on Software engineering
Conditional correlation analysis for safe region-based memory management
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Practical memory leak detector based on parameterized procedural summaries
Proceedings of the 7th international symposium on Memory management
A direct path to dependable software
Communications of the ACM - A Direct Path to Dependable Software
Efficiently and precisely locating memory leaks and bloat
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Demand-driven memory leak detection based on flow- and context-sensitive pointer analysis
Journal of Computer Science and Technology
A factor graph model for software bug finding
IJCAI'07 Proceedings of the 20th international joint conference on Artifical intelligence
A few billion lines of code later: using static analysis to find bugs in the real world
Communications of the ACM
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Fractional Ownerships for Safe Memory Deallocation
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
LEAKPOINT: pinpointing the causes of memory leaks
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Diagnosing memory leaks using graph mining on heap dumps
Proceedings of the 16th ACM SIGKDD international conference on Knowledge discovery and data mining
MeCC: memory comparison-based clone detector
Proceedings of the 33rd International Conference on Software Engineering
Memory leak analysis by contradiction
SAS'06 Proceedings of the 13th international conference on Static Analysis
Memory leaks detection in java by bi-abductive inference
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
SPAS: scalable path-sensitive pointer analysis on full-sparse SSA
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Static memory leak detection using full-sparse value-flow analysis
Proceedings of the 2012 International Symposium on Software Testing and Analysis
A type system for counting instances of software components
Theoretical Computer Science
Memory leak detection with context awareness
Proceedings of the 2012 ACM Research in Applied Computation Symposium
Interprocedural path-sensitive resource leaks detection for C programs
Proceedings of the Fourth Asia-Pacific Symposium on Internetware
Dynamically validating static memory leak warnings
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Precise memory leak detection for java software using container profiling
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
LeakChecker: Practical Static Memory Leak Detection for Managed Languages
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.02 |
We present a context- and path-sensitive algorithm for detecting memory leaks in programs with explicit memory management. Our leak detection algorithm is based on an underlying escape analysis: any allocated location in a procedure P that is not deallocated in P and does not escape from P is leaked. We achieve very precise context- and path-sensitivity by expressing our analysis using boolean constraints. In experiments with six large open source projects our analysis produced 510 warnings of which 455 were unique memory leaks, a false positive rate of only 10.8%. A parallel implementation improves performance by over an order of magnitude on large projects; over five million lines of code in the Linux kernel is analyzed in 50 minutes.