Database Reference
In-Depth Information
that collects and summarizes different types of data such as packet loss
and radio energy consumption to aid humans in uncovering behavior
anomalies.
To allow GDB-like tracing through distributed sensor network code,
sophisticated software tools such as Clairvoyant [98] and Marionette [96]
were developed that provide standard debugging support such as break-
points and watchpoints. Software tracing techniques were also devel-
oped [83], where challenges included ecient compression of the exe-
cution traces on resource-limited sensor nodes (called motes )forlater
inspection at a base-station. A recently-proposed hardware-assisted tool,
called Aveksha [85], introduced an FPGA to interface to the JTAG
(debug) port of the embedded processor of a remotely-deployed mote,
allowing remote breakpoint, tracepoint, and program-counter tracing
functionality, as well as energy profiling.
In a marked departure from techniques that focus on troubleshoot-
ing node-level code and data, the concept of macrodebugging was re-
cently introduced [82], referring to GDB-like debugging of sensor net-
work macro-programs . Macro-programming refers to network-level pro-
gramming techniques that abstract entire sensor networks in a fash-
ion that allows reasoning about and controlling network behavior as a
whole, as opposed to encoding the behavior of individual nodes. Ex-
amples of such abstractions include sensor neighborhoods [95], node
arrays [53, 34], abstract regions [93], stream feeds [22], and database
tables [69]. The macrodebugger [82] allows stepping through the dis-
tributed execution of macro-programs, visualize distributed state, and
experiment with hypothetical changes to variables. It was implemented
on a macro-programming framework, called MacroLab [45].
Prior work also addressed automatic error detection in sensor net-
works based on simple inspection of collected traces (typically inte-
grated with specific sensor network operating systems such as TinyOS
[59], SOS [37], Mantis [9], and LiteOS [12]). For example, H-SEND [44]
allows TinyOS programmers to specify invariants that must be satisfied
at run-time, and inserts the code needed to monitor such invariants and
report violations. Similarly, HERMES [55] allows SOS programmers to
interpose monitoring code, such as conditional watchpoints, into sensor
network programs, as well as to define how certain detected conditions
are to be dealt with. NodeMD [56] is designed (and implemented on
top of Mantis OS [9]) to detect a category of node-level faults such as
stack overflow, deadlock, and livelock. For LiteOS, recent work intro-
duces declarative tracepoints [13], a debugging abstraction that borrows
from aspect-oriented computing and allows conditional monitoring and
response to selected events. Recent work also considered data errors [35].
Search WWH ::




Custom Search