This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [FYI] tutorial for process record and reverse debugging


Greg Law wrote:
Michael Snyder wrote:
[...]
3) I'm in replay mode, possibly in the middle of the recording,
and I want to switch to record mode.  Now there are several
branching possibilities:  Do I want to:

a) Go to the end and start appending to the existing log?
I can understand someone wanting this.

   b) Truncate the existing log at the point where I am, and
      start appending to the prefix?
I never thought of this case.  I see now that for non-deterministic
executions this could have value.
Not just that, though.  This is also what happens if we
change a memory or register value, eg. a variable that
controls a conditional branch.  We auto-delete the trailing
part of the execution log, because now we're going to go
forward in a different direction.

But what would we do about "external state"?

Well, I had only been talking in the context of process record, which doesn't really deal all that well with external state, as far as I know.

It's fine to open up the discussion to general reverse debugging,
but I think at some point different implementations are going to
have to have their own separate, dedicated commands (as process
record presently does).

Of course, the more generality, the better!


Example, say I'm debugging a web-server, and half way through a connection I go back, then truncate the log and start again in a new direction. And clients "mid-session" with the webserver are liable to get mighty confused.

Speaking only for process record, I don't think process record could handle that situation well. It's called process record for one reason because it only handles one process at a time (in fact, currently only one thread at a time).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]