This is the mail archive of the 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]

Some questions about gdb's remote protocol and reverse debugging


I've been trying out gdb-cvs's remote protocol, specifically the
commands for reverse debugging, and i have a couple of questions that i
was hoping someone might be able to help me with. I'm using Linux on
x86-32 and x86-64.

First, if i'm understanding things correctly, gdb appears to default to
software breakpoints, using the 'Z0' and 'z0' commands and, if these
aren't supported by the remote target, it then tries to use 'M' and 'm'
to write breakpoints directly into the inferior's memory.

Is there any way to tell gdb to try to use hardware breakpoints (with
the 'Z1' and 'z1' commands) before resorting to 'M' and 'm' ? [In the
environment i'm working in, UndoDB, hardware breakpoints are more
convenient because they don't require any patching up of %pc, and
poking breakpoints directly into memory is not supported.]

Second, am i right in thinking that gdb does things like reverse-step
and reverse-next by effectively doing many reverse-stepi's (with 'bs'),
interleaved with 'g' commands to get the registers? If so, are there
any plans to try to avoid the overhead of this somehow ?

Many thanks,

- Julian


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