Synthesis of Communicating Processes from Temporal Logic Specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Ad Hoc on-demand distance-vector protocol
Ad hoc networking
Decompositions of Asynchronous Systems
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
TOSSIM: accurate and scalable simulation of entire TinyOS applications
Proceedings of the 1st international conference on Embedded networked sensor systems
Cmc: a model checker for network protocol implementations
Cmc: a model checker for network protocol implementations
Triage: diagnosing production run failures at the user's site
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
D3S: debugging deployed distributed systems
NSDI'08 Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation
MacroLab: a vector-based macroprogramming framework for cyber-physical systems
Proceedings of the 6th ACM conference on Embedded network sensor systems
Live Debugging of Distributed Systems
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
PDA: Passive distributed assertions for sensor networks
IPSN '09 Proceedings of the 2009 International Conference on Information Processing in Sensor Networks
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
PRES: probabilistic replay with execution sketching on multiprocessors
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
ODR: output-deterministic replay for multicore debugging
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Macrodebugging: global views of distributed program execution
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
PinPlay: a framework for deterministic replay and reproducible analysis of parallel programs
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
T-check: bug finding for sensor networks
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
Dependence-based multi-level tracing and replay for wireless sensor networks debugging
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Life, death, and the critical transition: finding liveness bugs in systems code
NSDI'07 Proceedings of the 4th USENIX conference on Networked systems design & implementation
Hi-index | 0.00 |
Run-time error detection and deterministic off-line error replay have received wide attention in recent years as a technique to enhance the programmer's ability to find software errors. To apply this technique to wireless sensor networks (WSN), one must be able to deal with the severe constraint on the memory, the communication bandwidth and the energy source on the sensor motes and the highly dynamic and unpredictable operating environment. All these make it difficult for the application programmer to manually insert operations required for error detection and replay. This paper makes three contributions towards making error detection and replay automatic for WSNs: (i) a domain-specific language, called SensorC, for specifying WSN global properties that must be satisfied when the system and its application software are deployed; (ii) a method to automatically decompose such global properties into a set of local operations to detect global property violations, with the goal to minimize the communication traffic for state information exchanges; and (iii) a new program analysis to identify program sub-traces that can be skipped for replay without losing the accuracy of diagnosis. The proposed techniques, which are implemented in a compiler, are shown by experiments to successfully catch real WSN software errors and to substantially reduce message exchanges for run time error detection.