How does a historical debugger work?

The historical debugger is able to return the program state (including the current instruction) to its previous state. How is this possible in managed or unmanaged environments? I can not imagine that the debugger removes the state of the entire system from each command.

+5
source share
3 answers

One way to do this is to record the sources of non-determinism in the system (I / O, interrupts) and take snapshots of the states at different intervals. Thus, you can “rewind” by restoring the previous picture and playing forward using recorded non-determinism until you click the desired item in the past.

For example, imagine this timeline:

1    2           3     4
|    |           |     |
  • Program launch
  • ,
  • ,

, 3. , (, , ) 2 , 3. , - , . , 3.

, , VMWare Replay Debugger (. tech talk).

+4

, , " " (, , ..). , Microsoft IntelliTrace ( VS2010) , WinForms ..

-, . , IntelliTrace , .., .

, , IntelliTrace VS2010, .

+2

, , (, , , ).

0

All Articles