Stopping reverse debugging behaves differently with btrace
Marc Khouzam <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
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