Title
Macrodebugging: global views of distributed program execution
Abstract
Creating and debugging programs for wireless embedded networks (WENs) is notoriously difficult. Macroprogramming is an emerging technology that aims to address this problem by providing high-level programming abstractions. We present MDB, the first system to support the debugging of macroprograms. MDB allows the user to set break-points and step through a macroprogram using a source-level debugging interface similar to GDB, a process we call macrodebugging. A key challenge of MDB is to step through a macroprogram in sequential order even though it executes on the network in a distributed, asynchronous manner. Besides allowing the user to view distributed state, MDB also provides the ability to search for bugs over the entire history of distributed states. Finally, MDB allows the user to make hypothetical changes to a macroprogram and to see the effect on distributed state without the need to redeploy, execute, and test the new code. We show that macrodebugging is both easy and efficient: MDB consumes few system resources and requires few user commands to find the cause of bugs. We also provide a lightweight version of MDB called MDB Lite that can be used during the deployment phase to reduce resource consumption while still eliminating the possibility of heisenbugs: changes in the manifestation of bugs caused by enabling or disabling the debugger.
Year
DOI
Venue
2009
10.1145/1644038.1644053
SenSys
Keywords
Field
DocType
Source-level Debugging,Macroprogramming,Wireless Embedded Networks
Resource consumption,Asynchronous communication,Abstraction,Software deployment,Wireless,Debugger,Computer science,Real-time computing,Emerging technologies,Debugging,Distributed computing
Conference
Citations 
PageRank 
References 
28
1.72
39
Authors
5
Name
Order
Citations
PageRank
Tamim Sookoor120116.83
Timothy W. Hnat216910.15
Pieter Hooimeijer359826.19
Westley Weimer43510162.27
Kamin Whitehouse51982160.79