Ubiquitous computing applications are frequently long-running and highly distributed, leading to bugs that only become apparent far from and long after their original point of appearance. Such bugs are hard to find. This paper describes the Interaction Analyzer, a debugging tool for ubiquitous computing applications that addresses this problem. The Interaction Analyzer uses protocol definitions and histories of executions that displayed bad behavior to assist developers in quickly finding the original root cause of the bug. We describe the architecture of the tool and the methods it uses to rapidly narrow in on bugs. We also report overheads associated with the tool, simulation studies of its ability to find bugs rapidly, and case studies of its use in finding bugs in a real ubiquitous computing application.
展开▼