1982
DOI: 10.1145/988376.988379
|View full text |Cite
|
Sign up to set email alerts
|

A technique for finding storage allocation errors in C-language programs

Abstract: This paper describes a simple tool for diagnosing allocation errors in C-language [Kern 78] programs. Our tool consists of a traced replacement for the standard memory allocator, and a program to analyze traces. We have found this tool quite helpful in making long-running programs (e.g. text editors) more robust.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

1998
1998
2018
2018

Publication Types

Select...
2
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(3 citation statements)
references
References 1 publication
0
3
0
Order By: Relevance
“…For application and system software, compiler-inserted program instrumentation (or simply compiler instrumentation) -where the compiler inserts special code into the program-undertest to monitor its execution -has emerged as a popular way for programmers to gain visibility into how their programs are operating. Programmers today can avail themselves of a variety of instrumentation-based dynamic-analysis tools, such as race detectors [3-5, 12-14, 18], memory checkers [1,8,17], cache simulators [2,20,25], call-graph generators [7,10], code-coverage analyzers [22,23], and performance and scalability profilers [9,16,24]. These tools generally operate as shadow computations -executing behind the scenes while the program-under-test runs.…”
Section: Extended Abstractmentioning
confidence: 99%
See 1 more Smart Citation
“…For application and system software, compiler-inserted program instrumentation (or simply compiler instrumentation) -where the compiler inserts special code into the program-undertest to monitor its execution -has emerged as a popular way for programmers to gain visibility into how their programs are operating. Programmers today can avail themselves of a variety of instrumentation-based dynamic-analysis tools, such as race detectors [3-5, 12-14, 18], memory checkers [1,8,17], cache simulators [2,20,25], call-graph generators [7,10], code-coverage analyzers [22,23], and performance and scalability profilers [9,16,24]. These tools generally operate as shadow computations -executing behind the scenes while the program-under-test runs.…”
Section: Extended Abstractmentioning
confidence: 99%
“…The code for CSI-cov, shown in Figure 1 in its entirety, is both short and simple. 1 In just 42 lines, the CSI framework implements this useful compiler-based tool as a simple C library. Without the CSI framework, a code-coverage tool based on compiler instrumentation would require considerably more development effort, as well as an understanding of the internals of the compiler.…”
Section: A Brief Tutorial On Csimentioning
confidence: 99%
“…This approach is often used in languages that allow unbounded pointers, like C and C++. Examples include malloc debug libraries (Barach et al, 1982), the GNU implementation of the C++ STL functionality, and the Microsoft Windows SDK debug libraries. As we argue in our concluding remarks, runtime monitoring tools complement our approach with a potential to locate more errors slightly later in the development cycle.…”
Section: Research Contextmentioning
confidence: 99%