A Run-Time Type-Checking Debugger for C
- Suan Hsi Yong and Susan Horwitz.
Using Static Analysis to Reduce Dynamic Analysis Overhead.
Formal Methods in System Design, 27(3):313-334,
November 2005, Springer Netherlands.
-
- Link:
- http://dx.doi.org/10.1007/s10703-005-3401-0
-
- Abstract:
-
Dynamic analysis (instrumenting programs with code to detect
and prevent errors during program execution) can be an effective
approach to debugging, as well as preventing harm from being
caused by malicious code. One problem with this approach is
the runtime overhead introduced by the instrumentation.
We define several techniques that involve using the results
of static analysis to identify some cases where instrumentation
can safely be removed. While we have designed the techniques
with a specific dynamic analysis in mind
(that used by the Runtime Type-Checking tool),
the ideas may be of more general applicability.
-
-
- Suan Hsi Yong.
Chapter 9: Runtime Type Checker (RTC)
and
Chapter 10: Improving the Runtime Type Checker.
In Runtime Monitoring of C Programs for Security and Correctness,
Ph.D. Thesis, University of Wisconsin-Madison, August 2004.
-
- Download:
- Chapter 9:
Postscript, 531 KB
/ PDF, 122 KB
- Chapter 10:
Postscript, 895 KB
/ PDF, 157 KB
-
-
- Suan Hsi Yong and Susan Horwitz.
Reducing the Overhead of Dynamic Analysis.
Second Workshop on Runtime Verification (RV'02),
Copenhagen, Denmark, July 2002,
Electronic Notes in Theoretical Computer Science,
vol. 70, no. 4,
pages 159-179.
-
- Download:
- Paper: Postscript, 445 KB
/ PDF, 218 KB
-
- Abstract:
-
Dynamic analysis (instrumenting programs with code to detect and prevent
errors during program execution) can be an effective approach to
debugging, as well as an effective means to prevent harm being caused by
malicious code. One problem with this approach is the runtime overhead
introduced by the instrumentation. We define several techniques that
involve using the results of static analysis to identify some cases where
instrumentation can safely be removed. While we have designed the
techniques with a specific dynamic analysis in mind (that used by the
Runtime Type-Checking tool), the ideas may be of more general
applicability.
-
-
- Alexey Loginov, Suan Hsi Yong, Susan Horwitz, and Thomas Reps.
Debugging via Run-Time Type Checking.
In H. Hussmann, editor,
Fundamental Approaches to Software Engineering
4th International Conference (FASE 2001),
Genoa, Italy, April 2001,
Lecture Notes in Computer Science, vol 2029,
pages 217-232. Springer-Verlag.
-
- Download:
- Paper: Postscript, 357 KB
/ PDF, 175 KB
- FASE Slides: Powerpoint, 274 KB
-
- Abstract:
-
This paper describes the design and implementation of a tool for C
programs that provides run-time checks based on type information. The
tool instruments a program to monitor the type stored in each memory
location. Whenever a value is written into a location, the location's
run-time type tag is updated to match the type of the value. Also,
the location's static type is compared with the value's type;
if there is a mismatch, a warning message is issued. Whenever the value
in a location is used, its run-time type tag is checked, and if the type
is inappropriate in the context in which the value is being used, an
error message is issued.
-
-
The tool has been used to pinpoint the cause of bugs in several Solaris
utilities and Olden benchmarks, usually providing information that is
succinct and precise.
-
-
- Source code: rtc.tgz -- 7.8 MB.
No support -- use at own risk.