Abstract:
Detailed diagnostic data is a prerequisite for debugging problems and understanding runtime performance in distributed embedded wireless systems. Severe bandwidth limitations, tight timing constraints, and limited program text space hinder the application of standard diagnostic tools within this domain. Our work introduces the Log Instrumentation Specification (LIS) that drives insertion of low overhead logging calls into a system. The LIS language is easy for developers to directly integrate into their daily work flow and, by acting as an intermediary language, facilitates rapid construction of higher level analysis.
Through microbenchmarks of a complete LIS implementation for the TinyOS operating system, we demonstrate that LIS can comfortably fit onto bottom tier embedded systems. We show how we have used LIS to create a complete monitoring infrastructure for wireless sensor networks that uses features of the LIS language to optimize the size of gathered logs, replicate features of specialized logging infrastructures with minimal effort, and jump start debugging of these systems. Finally, we provide examples of our use of LIS to diagnose specific problems and understand system behavior of a sensor network.