DocumentCode :
2666264
Title :
AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants
Author :
Zhou, Pin ; Liu, Wei ; Fei, Long ; Lu, Shan ; Qin, Feng ; Zhou, Yuanyuan ; Midkiff, Samuel ; Torrellas, Josep
Author_Institution :
University of Illinois at Urbana-Champaign
fYear :
2004
fDate :
04-08 Dec. 2004
Firstpage :
269
Lastpage :
280
Abstract :
This paper makes two contributions to architectural support for software debugging. First, it proposes a novel statistics-based, on-the-fly bug detection method called PC-based invariant detection. The idea is based on the observation that, in most programs, a given memory location is typically accessed by only a few instructions. Therefore, by capturing the invariant of the set of PCs that normally access a given variable, we can detect accesses by outlier instructions, which are often caused by memory corruption, buffer overflow, stack smashing or other memory-related bugs. Since this method is statistics-based, it can detect bugs that do not violate any programming rules and that, therefore, are likely to be missed by many existing tools. The second contribution is a novel architectural extension called the Check Look-aside Buffer (CLB). The CLB uses a Bloom filter to reduce monitoring overheads in the recently-proposed iWatcher architectural framework for software debugging. The CLB significantly reduces the overhead of PC-based invariant debugging. We demonstrate a PC-based invariant detection tool called AccMon that leverages architectural, run-time system and compiler support. Our experimental results with seven buggy applications and a total of ten bugs, show that AccMon can detect all ten bugs with few false alarms (0 for five applications and 2-8 for two applications) and with low overhead (0.24-2.88 times). Several existing tools evaluated, including Purify, CCured and value-based invariant detection tools, fail to detect some of the bugs. In addition, Purify´s overhead is one order of magnitude higher than AccMon´s. Finally, we show that the CLB is very effective at reducing overhead.
Keywords :
Application software; Buffer overflow; Computer bugs; Computer science; Filters; Monitoring; Personal communication networks; Reliability; Robustness; Software debugging;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Microarchitecture, 2004. MICRO-37 2004. 37th International Symposium on
ISSN :
1072-4451
Print_ISBN :
0-7695-2126-6
Type :
conf
DOI :
10.1109/MICRO.2004.3
Filename :
1551000
Link To Document :
بازگشت