ABSTRACT
One of the important factors in ensuring the correct functionality of wireless sensor networks (WSNs) is the reliability of the software running on individual sensor nodes. Research has shown that path-sensitive static analysis is effective for bug detection and fault diagnosis; however, path-sensitive analysis is prohibitively expensive when applied to a WSN application due to the large state space caused by arbitrary interrupt preemptions. In this paper, we propose a new execution model called lazy preemption that reduces this state space by restricting interrupt handlers to a set of predetermined preemption points, if possible. This execution model allows us to represent the program with an inter-interrupt control flow graph (IICFG), which is easier to analyze than the original CFGs with arbitrary interrupt preemptions.
- P. Ballarini and A. Miller. Model Checking Medium Access Control for Sensor Networks. In ISoLA '06, 2006. Google ScholarDigital Library
- D. Brylow, N. Damgaard, and J. Palsberg. Static Checking of Interrupt-Driven Software. In ICSE '01, 2001. Google ScholarDigital Library
- N. Cooprider, W. Archer, E. Eide, D. Gay, and J. Regehr. Efficient Memory Safety for TinyOS. In SenSys '07, 2007. Google ScholarDigital Library
- C. Killian, J. Anderson, R. Jhala, and A. Vahdat. Life, Death, and the Critical Transition: Finding Liveness Bugs in Systems Code. In NSDI '07, 2007. Google ScholarDigital Library
- Z. Lai, S. Cheung, and W. Chan. Inter-Context Control-Flow and Data-Flow Test Adequacy Criteria for nesC Applications. In FSE '08, 2008. Google ScholarDigital Library
- W. Le and M. L. Soffa. Marple: A Demand-Driven Path-Sensitive Buffer Overflow Detector. In FSE '08, 2008. Google ScholarDigital Library
- W. Le and M. L. Soffa. Path-Based Fault Correlation. In FSE '10, 2010. Google ScholarDigital Library
- P. Li and J. Regehr. T-Check: Bug Finding for Sensor Networks. In IPSN '10, 2010. Google ScholarDigital Library
- L. Mottola, T. Voigt, F. Osterlind, J. Eriksson, L. Baresi, and C. Ghezzi. Anquiro: Enabling Efficient Static Verification of Sensor Network Software. In SESENA '10, 2010. Google ScholarDigital Library
- J. Regehr. Random Testing of Interrupt-Driven Software. In EMSOFT '05, 2005. Google ScholarDigital Library
- J. Regehr, A. Reid, and K. Webb. Eliminating Stack Overflow by Abstract Interpretation. ACM Trans. Embed. Comput. Syst., 4(4), 2005. Google ScholarDigital Library
- B. Schlich. Model Checking of Software for Microcontrollers. ACM Trans. Embed. Comput. Syst., 9(4), 2010. Google ScholarDigital Library
- J. Yang, M. L. Soffa, L. Selavo, and K. Whitehouse. Clairvoyant: A Comprehensive Source-Level Debugger for Wireless Sensor Networks. In SenSys '07, 2007. Google ScholarDigital Library
Index Terms
- Lazy preemption to enable path-based analysis of interrupt-driven code
Recommendations
Improving Side-Effect Analysis with Lazy Access Path Resolving
SCAM '09: Proceedings of the 2009 Ninth IEEE International Working Conference on Source Code Analysis and ManipulationFor scalability, many side-effect analysis methods choose inclusion-based context-insensitive (IBCI) pointer analysis as their basis. However, such a pointer analysis is known to be imprecise, which often results in over-conservative side-effect sets. ...
Numerical static analysis of interrupt-driven programs via sequentialization
EMSOFT '15: Proceedings of the 12th International Conference on Embedded SoftwareEmbedded software often involves intensive numerical computations and thus can contain a number of numerical run-time errors. The technique of numerical static analysis is of practical importance for checking the correctness of embedded software. ...
Modular verification of interrupt-driven software
ASE '17: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software EngineeringInterrupts have been widely used in safety-critical computer systems to handle outside stimuli and interact with the hardware, but reasoning about interrupt-driven software remains a difficult task. Although a number of static verification techniques ...
Comments