Automatic Detection, Validation and Repair of Race Conditions in Interrupt-Driven Embedded Software

05/29/2023
by   Yu Wang, et al.
0

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 (or two 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, validate and repair 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. Finally, it provides repair candidates to eliminate the detected races. We evaluate SDRacer on nine real-world embedded programs written in C language. The results show that SDRacer can precisely detect and successfully fix race conditions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/03/2020

Graph Repair and its Application to Meta-Modeling

Model repair is an essential topic in model-driven engineering. We prese...
research
04/30/2019

Dependence-Aware, Unbounded Sound Predictive Race Detection

Data races are a real problem for parallel software, yet hard to detect....
research
09/08/2022

Presentation: SymDefFix – Sound Automatic Repair Using Symbolic Execution

In this presentation, we introduce our constraint-based repair approach,...
research
07/12/2018

IntRepair: Informed Fixing of Integer Overflows

Integer overflows have threatened software applications for decades. Thu...
research
07/17/2021

Tea: Program Repair Using Neural Network Based on Program Information Attention Matrix

The advance in machine learning (ML)-driven natural language process (NL...
research
12/27/2019

LLOV: A Fast Static Data-Race Checker for OpenMP Programs

In the era of Exascale computing, writing efficient parallel programs is...
research
10/06/2020

Static Race Detection for RTOS Applications

We present a static analysis technique for detecting data races in Real-...

Please sign up or login with your details

Forgot password? Click here to reset