Abstract
Interrupt-driven programs are widely deployed in safety-critical embedded systems to perform hardware and resource dependent data operation tasks. The frequent use of interrupts in these systems can cause race conditions to occur due to interactions between application tasks and interrupt handlers. Numerous program analysis and testing techniques have been proposed to detect races in multithreaded programs. Little work, however, has addressed race condition problems related to hardware interrupts. In this paper, we present SDRacer, an automated framework that can detect and validate race conditions in interrupt-driven embedded software. It uses a combination of static analysis and symbolic execution to generate input data for exercising the potential races. It then employs virtual platforms to dynamically validate these races by forcing the interrupts to occur at the potential racing points. We evaluate SDRacer on nine real-world embedded programs written in C language. The results show that SDRacer can precisely detect race conditions.
Original language | English |
---|---|
Title of host publication | ISSTA 2017 - Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis |
Editors | Koushik Sen, Tevfik Bultan |
Pages | 113-124 |
Number of pages | 12 |
ISBN (Electronic) | 9781450350761 |
DOIs | |
State | Published - Jul 10 2017 |
Event | 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2017 - Santa Barbara, United States Duration: Jul 10 2017 → Jul 14 2017 |
Publication series
Name | ISSTA 2017 - Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis |
---|
Conference
Conference | 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2017 |
---|---|
Country/Territory | United States |
City | Santa Barbara |
Period | 7/10/17 → 7/14/17 |
Bibliographical note
Publisher Copyright:© 2017 Association for Computing Machinery.
Keywords
- Embedded Software
- Interrupts
- Race Condition
- Software Testing
ASJC Scopus subject areas
- Computational Theory and Mathematics
- Computer Science Applications
- Software