Title
Lightweight runtime checking of C programs with RTC.
Abstract
The C Programming Language is known for being an efficient language that can be compiled on almost any architecture and operating system. However the absence of dynamic safety checks and a relatively weak type system allows programmer oversights that are hard to spot. In this paper, we present RTC, a runtime monitoring tool that instruments unsafe code and monitors the program execution. RTC is built on top of the ROSE compiler infrastructure. RTC finds memory bugs and arithmetic overflows and underflows, and run-time type violations. Most of the instrumentations are directly added to the source file and only require a minimal runtime system. As a result, the instrumented code remains portable. In tests against known error detection benchmarks, RTC found 98% of all memory related bugs and had zero false positives. In performance tests conducted with well known algorithms, such as binary search and MD5, we determined that our tool has an average run-time overhead rate of 9.7× and memory overhead rate of 3.5×.
Year
DOI
Venue
2016
10.1016/j.cl.2016.01.001
Computer Languages, Systems & Structures
Keywords
Field
DocType
Runtime monitoring,Source code instrumentation,Static analysis,C,C++
Arithmetic underflow,Programming language,Programmer,Computer science,Source code,Error detection and correction,Compiler,Pre-determined overhead rate,Binary search algorithm,Embedded system,Runtime system
Journal
Volume
Issue
ISSN
45
C
1477-8424
Citations 
PageRank 
References 
2
0.36
18
Authors
5
Name
Order
Citations
PageRank
Reed Milewicz182.47
Rajeshwar Vanka291.15
James Tuck356433.06
Daniel J. Quinlan465280.13
Peter Pirkelbauer5529.37