next up previous
Next: Introduction

On Debugging Real-Time Applications

Frank Mueller and David B. Whalley
Dept. of Computer Science
Florida State University
Tallahassee, FL 32306-4019
e-mail: whalley@cs.fsu.edu phone: (904) 644-3506

Abstract:

Debugging is an integral part of the software development cycle which can account for up to 50% of the development time of an application. This paper discusses some of the challenges specific to real-time debugging. It explains how developing real-time applications can be supported by an environment which addresses the issues of time deadline monitoring and distortion due to the interference of debugging. The current implementation of this environment provides the elapsed time during debugging on request at breakpoints. This time information corresponds to the elapsed execution time since program initiation. Delays due to the interference of the debugger, for example input delays at breakpoints, are excluded from the time estimates. The environment includes a modified compiler and a static cache simulator which together produce instrumented programs for the purpose of debugging. The instrumented program supports source-level debugging of optimized code and an efficient cache simulation to provide timing information at execution time. The overhead in execution time of an instrumented program is only approximately 1 to 4 times slower than the corresponding unoptimized program. Conventional hardware simulators could alternatively be used to obtain the same information but would run much slower. The environment facilitates the debugging of real-time applications. It allows the monitoring of deadlines, helps to locate the first task which misses a deadline, and supports the search for code portions which account for most of the execution time. This facilitates hand-tuning of selected tasks to make a schedule feasible.





Robert Palmer
Mon May 19 10:16:17 EDT 1997