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]

Stopping reverse debugging behaves differently with btrace


Hi,

I noticed a difference of behaviour when stopping reverse debugging
with btrace vs record/replay (full mode).

If full mode, if I step to line 200 and then back to line 150 then give
the record stop command, real execution will start from line 150 as 
I step my program. (This is really cool btw.)

In btrace mode (I tried bts), after I step back to line 150 and send 
the record stop command, GDB appears to still be at line 150 but on
the next step, execution jumps to line 200 before doing the step 
operation.

I'm guessing this has to do with the fact that btrace does not store 
registers and memory, so cannot restart execution just anywhere.  

I find it strange though that when turning off record, every indication 
to the user is that we are still at line 150, when in reality, GDB is 
effectively back at line 200.  This is particularly noticeable in a 
frontends when execution jumps (unexpectedly) when the first step
is requested.  

Variables also remain unavailable until the next step (or strangely,
until I send some register command).

I was wondering if GDB should reset its execution to the proper
place upon a 'record stop' for btrace?  And notify the frontend of
that change.

Any opinions?

Thanks

Marc




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