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] |
Michael Snyder wrote:Julian Smith wrote:Short answer: this is expected behavior.I've been trying out reverse-next with UndoDB as a remote debug server, and it looks like reverse-next works by doing repeated `bs' (reverse-stepi) commands.
I was expecting it to set breakpoints and do `bc' (reverse-continue) commands, by analogy with normal forwards step etc.
Am i doing something wrong here ? Or is this the expected behaviour ?
Forward-next works the same way, in general. Both forward-next and reverse-next will set breakpoints under some circumstances, but will often work by singlestepping.
If I understand correctly, when doing a 'next' gdb does something like:
while (PC in current line) { ptrace (PTRACE_SINGLESTEP) if (PC outside current function) { plant breakpoint at return address ptrace (PTRACE_CONT) remove breakpoint } }
however, when doing a reverse-next, we don't see this. We just see repeated reverse single-steps. If trying to do a reverse-next over a non-trivial function, this can take a very long time. Is this expected?
No, it should work similarly to forward next. When you have stepped backward into a function, it should place a breakpoint at the entry point, run backward to that, and then step back into the caller.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |