TY - GEN
T1 - Declarative tracepoints
T2 - 6th ACM Conference on Embedded Networked Sensor Systems, SenSys 2008
AU - Cao, Qing
AU - Abdelzaher, Tarek
AU - Stankovic, John
AU - Whitehouse, Kamin
AU - Luo, Liqian
PY - 2008
Y1 - 2008
N2 - 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.
AB - 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.
KW - declarative tracepoints
KW - embedded debugging
KW - wireless sensor networks
UR - http://www.scopus.com/inward/record.url?scp=84866482934&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84866482934&partnerID=8YFLogxK
U2 - 10.1145/1460412.1460422
DO - 10.1145/1460412.1460422
M3 - Conference contribution
AN - SCOPUS:84866482934
SN - 9781595939906
T3 - SenSys'08 - Proceedings of the 6th ACM Conference on Embedded Networked Sensor Systems
SP - 85
EP - 98
BT - SenSys'08 - Proceedings of the 6th ACM Conference on Embedded Networked Sensor Systems
Y2 - 5 November 2008 through 7 November 2008
ER -