Declarative tracepoints: a programmable and application independent debugging system for wireless sensor networks

  • Authors:
  • Qing Cao;Tarek Abdelzaher;John Stankovic;Kamin Whitehouse;Liqian Luo

  • Affiliations:
  • University of Illinois, Urbana-Champaign, IL, USA;University of Illinois, Urbana-Champaign, IL, USA;University of Virginia, Charlottesville, VA, USA;University of Virginia, Charlottesville, VA, USA;Microsoft Research, Redmond, WA, USA

  • Venue:
  • Proceedings of the 6th ACM conference on Embedded network sensor systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Effective debugging usually involves watching program state to diagnose bugs. When debugging sensor network applications, this approach is often time-consuming and errorprone, not only because of the lack of visibility into system state, but also because of the difficulty to watch the right variables at the right time. In this paper, we present declarative tracepoints, a debugging system that allows the user to insert a group of action-associated checkpoints, or tracepoints, to applications being debugged at runtime. Tracepoints do not require modifying application source code. Instead, they are written in a declarative, SQL-like language called TraceSQL independently. By triggering the associated actions when these checkpoints are reached, this system automates the debugging process by removing the human from the loop. We show that declarative tracepoints are able to express the core functionality of a range of previously isolated debugging techniques, such as EnviroLog, NodeMD, Sympathy, and StackGuard. We describe the design and implementation of the declarative tracepoints system, evaluate its overhead in terms of CPU slowdown, illustrate its expressiveness through the aforementioned debugging techniques, and finally demonstrate that it can be used to detect real bugs using case studies of three bugs based on the development of the LiteOS operating system.