qing cao, tarek abdelzaher(uiuc), john stankovic, kamin whitehouse (uva), liqian luo (msr)

19
Declarative Tracepoints (DT) - A programmable and Application independent Debugging System for WSN Qing Cao, Tarek Abdelzaher(UIUC), John Stankovic, Kamin Whitehouse (UVA), Liqian Luo (MSR)

Upload: lawrence-rodgers

Post on 27-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Declarative Tracepoints (DT)- A programmable and Application independent

Debugging System for WSN

Qing Cao, Tarek Abdelzaher(UIUC), John Stankovic, Kamin Whitehouse

(UVA),Liqian Luo (MSR)

2

OutlineRequirements for debugging WSNExisting techniquesDeclarative Tracepoints Debugging SystemEvaluationConclusions

3

Requirements for Debugging WSNWatch program state to diagnose abnormal

behaviorWatch the right variables at the right timeVisibility into program stateResource constraints

4

Existing TechniquesEnviroLog

Event recording and replay Compiler modify source code to record function called time and

parameter START_RECORD, START_REPLAY

NodeMD To diagnose node-level faults Stack overflow, livelock, deadlock, application-specific faults

Sympathy Trace the source of failure: node, communication, sink Collect metrics and analyze at the sink

StackGuard Stack corruption, buffer overrun Canary Word

5

Design of DT

Application-independentNo need of source level modificationIsolate debugging code from app codeDebugging without re-compilation or re-deployment

ProgrammableTraceSQL debugging laguage, declarative similar to

SQLLocation of tracepoints and associated actionsTrace yield() FROM syscall.c Execution { RECORD yield();} Where { READ msend->lock FROM radio.c == 1; }

6

Architecture of DT

7

TraceSQL Keywords

8

TraceSQL Example Of StackGuard

9

Code Examples

10

Implementation

11

LiteOSSeparate compilation of kernel and user appsApplications as individual threadsEach thread has non-overlapping flash and

RAMMemory addresses of app provide by a .lss

file generated from app trace retrieval from nodes by LiteOS shell

file copy command Atmega128 processor support modifying

binary code at runtime

12

Dynamic Tracepoint Instrumentation

13

tradeoffsTracepoint actions focus on global variable

operationsLocal variable needs compiler dependent

analysisDoes not address compiler specific

optimization

14

Evaluation--overheadCPU slowdownMemory Overhead

RAM: blank tracepoint(42bytes), file logging racepoint(332bytes)

Flash: increase with number of tracepoints, but < 4K with less than 15 tracepoints

Flash lifetimeFile system:15 tps, hold

280 secsFlash memory lifetime 10k

write/erase cycles on MicaZ

15

TraceSQL expressiveness-EnviroLog

16

TraceSQL expressiveness-NodeMD

17

TraceSQL expressiveness-Sympathy

18

Case StudiesBug 1: Node reboot after changing the

compiler optimization levelBug 2: User apps put into memory_corrupted

state once executedBug 3: Unexpected corruption of

communication protocol neighbor table

19

ConclusionsDeclarative tracepoint debugging systemApplication independent and programmable

tracepoints at runtimeTraceSQL is expressiveReal case verification