Re: gdb requires watchpoints to fire after the write
Joel Brobecker <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
> Pedro> Yeah, it's confusing. > > [... great explanation ... ] > > This would be great as comments in gdbarch.sh and target.h. > None of these things have comments currently. Agreed. I was going to send a patch doing so when I read Pedro's message, and then read this. I'm happy to do the patch, but don't want to start if Pedro is already on it. > Pedro> We could most probably streamline all of this and come up with a better > Pedro> design with some thought. See also the comment in mips-tdep.c: > > Pedro> /* FIXME: cagney/2003-08-29: The macros target_have_steppable_watchpoint, > Pedro> HAVE_NONSTEPPABLE_WATCHPOINT, and target_have_continuable_watchpoint > Pedro> need to all be folded into the target vector. Since they are > Pedro> being used as guards for target_stopped_by_watchpoint, why not have > Pedro> target_stopped_by_watchpoint return the type of watchpoint that the code > Pedro> is sitting on? */ > Pedro> set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1); > > I'm curious about why this should be in the target rather than in the > gdbarch. It seems like a property of the ISA. > > Is it possible for gdbserver to do the single-step itself, avoiding a > round trip? That was the only rationale I could think of. It might not be gdbserver itself, which I don't think should try to remain as minimalistic as possible in terms of this kind of "intelligence", but maybe some other stubs? For instance, a stub might be designed to be usable against another kind of debugger which might be expecting a certain type of behavior forcing the stub to have to do the single-step itself. (?) My perspective is that, if we don't have a concrete situation where this functionality should be a property of the target, and we find that it simplifies the code or avoids confusion to remove that target property, then let's. The obvious question then becomes - what to do with ia64-linux? Is this platform still in use and relevant enough for us to invest energy into redesigning the watchpoint support on this platform a bit? -- Joel