Lightweight runtime checking of C programs with RTC. (April 2016)
- Record Type:
- Journal Article
- Title:
- Lightweight runtime checking of C programs with RTC. (April 2016)
- Main Title:
- Lightweight runtime checking of C programs with RTC
- Authors:
- Milewicz, Reed
Vanka, Rajesh
Tuck, James
Quinlan, Daniel
Pirkelbauer, Peter - Abstract:
- 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×. Abstract : Highlights: RTC is a tool for instrumenting C programs with run-time safety checks. It handles memory violations, arithmetic underflow/overflows, and type violations. The instrumented code can be compiled by any C99 compliant compiler. The runtime framework is extremely lightweight, useful for in situ analysis. The overhead is very low compared to other, similar tools available today.
- Is Part Of:
- Computer languages, systems & structures. Volume 45(2016)
- Journal:
- Computer languages, systems & structures
- Issue:
- Volume 45(2016)
- Issue Display:
- Volume 45, Issue 2016 (2016)
- Year:
- 2016
- Volume:
- 45
- Issue:
- 2016
- Issue Sort Value:
- 2016-0045-2016-0000
- Page Start:
- 191
- Page End:
- 203
- Publication Date:
- 2016-04
- Subjects:
- Runtime monitoring -- Source code instrumentation -- Static analysis -- C -- C++
Programming languages (Electronic computers) -- Periodicals
Computer networks -- Periodicals
Computer architecture -- Periodicals
Computer systems -- Periodicals
Langage de programmation
Réseau d'ordinateurs
Architecture d'ordinateur
Périodique électronique (Descripteur de forme)
Ressource Internet (Descripteur de forme)
005.13 - Journal URLs:
- http://www.sciencedirect.com/science/journal/14778424/40 ↗
http://www.elsevier.com/journals ↗ - DOI:
- 10.1016/j.cl.2016.01.001 ↗
- Languages:
- English
- ISSNs:
- 1477-8424
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 3394.071000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 2396.xml