This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH]: Make Linux use the new unified x86 watchpoint support
Eli Zaretskii wrote:
>
> > Date: Tue, 27 Mar 2001 08:47:16 -0800
> > From: Michael Snyder <msnyder@redhat.com>
> >
> > The gdb was configured for native linux, but until this change,
> > it was also able to be used to debug a remote embedded i386
> > target. This change breaks that, because it makes ptrace calls.
>
> How does GDB know if the target is local or remote? Can the Linux
> implementation of I386_DR_LOW_* macros test that and avoid calling
> ptrace in that case?
If you say "run" it's native -- if you say "target remote /dev/tty0"
it's remote. Or did you mean how can you tell programmatically?
There is no clean way, other than to test "current_target", eg.
if (strcmp (current_target.to_shortname, "remote") == 0)
and that's obviously not the nicest approach.
> Also, since I see that the Linux port of GDB was linking in
> i386v-nat.c, and i386v-nat.c defined those same watchpoint-related
> functions which called ptrace, and did that unconditionally, how did
> that work before the last changes?
I've no idea, I just know that it suddenly stopped working
with these changes. And I'm not talking about watchpoints
working -- I'm talking about _anything_ working. There is a
call to STOPPED_BY_WATCHPOINT in wait_for_inferior, and
you can't even connect to the target without wait_for_inferior
being called.