Tracing Interrupts in Embedded Software

TitleTracing Interrupts in Embedded Software
Publication TypeConference Paper
Year of Publication2009
AuthorsGracioli, G., and S. Fischmeister
Conference NameProc. of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES)
Pagination137–146
Date PublishedJune
Conference LocationDublin, Ireland
ISBN Number978-1-60558-356-3
Keywordsdebugging, real-time, tracing
Abstract

During the system development, developers often must correct wrong behavior in the software–-an activity colloquially called program debugging. Debugging is a complex activity, especially in real-time embedded systems because such systems interact with the physical world and make heavy use of interrupts for timing and driving I/O devices. Debugging interrupts is difficult, because they cause non-linear control flow in programs which is hard to reproduce in software. Record/replay mechanisms have proven their use to debugging embedded systems, because they provide means to recreate control flows offline where they can be debugged. In this work, we present the data tracing part of the record/replay mechanism that is specifically targeted to record interrupt behavior. To tune our tracing mechanism, we use the observed principle of return address clustering and a formal model for quantitative reasoning about the tracing mechanism. The presented heuristic and mechanisms show surprisingly good results–-up to an 800 percent speedup on the selector function and a 300 percent reduction on duplicates for non-optimal selector functions–-considering the leanness of the approach.

Notes

(best in research forum award)

URLhttp://dl.acm.org/citation.cfm?doid=1542452.1542471
DOI10.1145/1542452.1542471
Refereed DesignationRefereed
Related files: 

Opportunities

Looking for motivated students (undergrads and grads) interested in working on embedded software and systems research. Mail Sebastian Fischmeister for further information.