Abstract | Wireless sensor networks (WSNs) are plagued by the possibility of bugs manifesting only at deployment. However,
debugging deployed WSNs is challenging for several reasons—
the remote location of deployed sensor nodes, the non-determinism of execution that can make it difficult to replicate a
buggy run, and the limited hardware resources available on
a node. In particular, existing solutions to record and replay
debugging in WSNs fail to capture the complete code execution, thus negating the possibility of a faithful replay and
causing a large class of bugs to go unnoticed. In short, record
and replay logs a trace of predefined events while a deployed
application is executing, enabling replaying of events later
using debugging tools. Existing recording methods fail due
to the many sources of non-determinism and the scarcity of
resources on nodes.
In this paper we introduce Trace And Replay Debugging
In Sensornets (Tardis), a software-only approach for deterministic record and replay of WSN nodes. Tardis is able to
record all sources of non-determinism, based on the observation that such information is compressible using a combination of techniques specialized for respective sources. Despite
their domain-specific nature, the techniques presented are
applicable to the broader class of resource-constrained embedded systems. We empirically demonstrate the viability
of our approach and its effectiveness in diagnosing a newly
discovered bug in a widely used routing protocol. |
---|