Download presentation
Presentation is loading. Please wait.
1
Dependable computing needs pervasive debugging Tim Harris tim.harris@cl.cam.ac.uk
2
Outline Motivation Problems with existing debuggers Pervasive debugging System architecture Demo
3
Motivation One of the projects we’ve been working on is building lock-free data structures Safe for multi-threaded use, but don’t use locks Built from atomic read, write and CAS – lots of subtle interactions Algorithms are short, but formal methods hard to apply here
4
Debugger problems Usually only forward execution Probe effects / heisenbugs e.g. relaxed memory orderings or genuine-parallelism versus time-sliced Support for concurrency e.g. deterministic re-execution Support for distribution usually one debugger needed for each process sometimes support for tracing across RPCs network monitoring software, tcpdump, nProbe
5
Pervasive debugging Present the user with a single interface to the entire system All of the processes involved All of the threads within them All of the communication links Execute the application in a virtualized and completely deterministic environment At least we’d have bohrbugs rather than heisen- ones Challenges Correspondence between the real and virtual environments Design of internal interfaces Implementation efficiency
6
System architecture Currently GDB Remote stub Execution driver Instruction virtualizer Scheduler definition Instruction annotations Virtualized libraries Pervasive debugger User interface Program files
7
Demo CPU Write buffer Shared memory CPU Write buffer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.