1 / 17

Steve Lewis

TECHNIQUES FOR EFFICIENTLY RECORDING STATE CHANGES OF A COMPUTER ENVIRONMENT TO SUPPORT REVERSIBLE DEBUGGING. Steve Lewis. Outline of Presentation. Introduction to Reversible Debugging Related Work State History Recording Techniques Future Work J.I.M.S. Demonstration. Introduction.

abueche
Download Presentation

Steve Lewis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TECHNIQUES FOR EFFICIENTLY RECORDING STATE CHANGES OF A COMPUTER ENVIRONMENT TO SUPPORT REVERSIBLE DEBUGGING Steve Lewis

  2. Outline of Presentation • Introduction to Reversible Debugging • Related Work • State History Recording Techniques • Future Work • J.I.M.S. Demonstration

  3. Introduction • What is reversible debugging? • Reverse Execution • Undo • Why is it useful? • Learning tool • Reduce debugging time • Parallel Programs

  4. Related Work • EXDAMS (Balzer) • Flowback Analysis, History Tape • IGOR (Fieldman, Brown) • Incremental Checkpoints, Modified Memory Pages • SPYDER (Agrawal, DeMillo, Spafford) • Execution-History Backtracking vs. Structured Backtracking • LEONARDO (Demetrescu, Finocchi) • Reversible virtual CPU, virtual O/S, history recording • Bidirectional Debugging (Bob Boothe) • Event counters which facilitate re-execution

  5. History Logging Techniques • Data Representation of State Changes • Checkpoint Creation • When to Create Checkpoints • Checkpoint Culling Algorithm

  6. Data Representation of State Changes • Checkpoints record the entire state of the machine at some time index t. • State change recordsrecord incremental changes to the state of the machine.

  7. Data Representation of State Changes

  8. Data Representation of State Changes

  9. Checkpoint Creation

  10. Checkpoint Creation

  11. When to Create Checkpoints • Compromise between… • Space conserved by using checkpoints • Distance between checkpoints

  12. When to Create Checkpoints • If (StateHistorySize >= K * CheckpointSize) • Then createCheckpoint() • Requires estimating size of next checkpoint • Perform every cycle? • What is a good value for K? • Larger values of K… • Decrease the growth rate of state history • Increase the distance between checkpoints

  13. Checkpoint Culling Algorithm • Motivation • Maintain the condition that the time to go backwards u steps is proportional to u. • Reduce state history growth rate from a linear function to a logarithmic function.

  14. Checkpoint Culling Algorithm

  15. Checkpoint Culling Algorithm

  16. State History Growth

  17. Future Work • Merging checkpoints • Save space by storing checkpoint deltas and still be able to use the Checkpoint Culling Algorithm • Investigate alternative methods for deciding when to create checkpoints • Implement circular state history record buffer • Necessary to maintain O(u) runtime for undo operation • More work on JIMS • More authentic simulation (e.g. memory mapped I/O) • Improved GUI (threads, exceptions) • Case study • To find patterns regarding the use of undo.

More Related