Static detection of dynamic memory errors
- 1 May 1996
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 31 (5) , 44-53
- https://doi.org/10.1145/231379.231389
Abstract
Many important classes of bugs result from invalid assumptions about the results of functions and the values of parameters and global variables. Using traditional methods, these bugs cannot be detected efficiently at compile-time, since detailed cross-procedural analyses would be required to determine the relevant assumptions. In this work, we introduce annotations to make certain assumptions explicit at interface points. An efficient static checking tool that exploits these annotations can detect a broad class of errors including misuses of null pointers, uses of dead storage, memory leaks, and dangerous aliasing. This technique has been used successfully to fix memory management problems in a large program.Keywords
This publication has 3 references indexed in Scilit:
- LCLintPublished by Association for Computing Machinery (ACM) ,1994
- Abstractions for recursive pointer data structuresPublished by Association for Computing Machinery (ACM) ,1992
- Garbage collection in an uncooperative environmentSoftware: Practice and Experience, 1988