Cheap hardware support for software debugging and profiling
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
A software instruction counter
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging
IEEE Transactions on Software Engineering
Practical minimal perfect hash functions for large databases
Communications of the ACM
Monitoring and debugging distributed real-time programs
Monitoring and debugging of distributed real-time systems
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
RecPlay: a fully integrated practical record/replay system
ACM Transactions on Computer Systems (TOCS)
Mastering algorithms with C
Modern Operating Systems
Interaktives Trace- und Debugging- System ALGOL KIEL X 8
3. Fachtagung über Programmiersprachen, Gesellschaft für Informatik
Instruction tracing via microprogramming
MICRO 7 Conference record of the 7th annual workshop on Microprogramming
Record/replay for nondeterministic program executions
Communications of the ACM - Why CS students need math
Non-Intrusive Debug Technique for Embedded Programming
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Java-MaC: A Run-Time Assurance Approach for Java Programs
Formal Methods in System Design
Embedded Systems Design: The ARTIST Roadmap for Research and Development (Lecture Notes in Computer Science)
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
SimTester: a controllable and observable testing framework for embedded systems
VEE '12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
An animation framework for improving the comprehension of TinyOS programs
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
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.