NESL Technical Report #: 2009-1-1
Abstract: Call traces can provide detailed insight into the operation of distributed embedded systems. Developers inspect traces to understand and debug systems using manual and automatic techniques such as data mining. Correlation of traces between nodes provides a network level view of system. These traces are typically gathered by logging a globally unique identifier for each called function. Unfortunately, this naive call trace gathering technique results in excessive consumption of the limited memory, bandwidth, and energy resources available in wireless sensor networks. This paper proposes three new call trace gathering techniques that are designed specifically for the computing platforms with extreme resource constraints. The first technique uses local name spaces and caller side logging to significantly reduce the bit size of function identifiers. The second technique reconstructs call traces from a log of the runtime control flow decisions made by a program. The third technique performs a novel reduction over a program’s control flow graph to limit logging to control flow nodes effecting runtime call decisions. Our work automates the insertion of logging statements into source code for all the techniques described above. Our experimental results show promising outlook where two of the techniques reduced the size of the log to less than 15% of traces produced by traditional methods. These savings make the new call trace capturing techniques attractive additions to the toolbox employed by developers and users of wireless sensor networks.
Page (Count): 16
Public Document?: Yes
NESL Document?: Yes
Document category: Report