From: Joel Brobecker <brobecker@adacore.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: palves@redhat.com, gdb-patches@sourceware.org
Subject: Re: [PATCH] Fix "PC register is not available" issue
Date: Tue, 08 Apr 2014 04:23:00 -0000 [thread overview]
Message-ID: <20140408042331.GF4250@adacore.com> (raw)
In-Reply-To: <83ha647d6d.fsf@gnu.org>
> Sorry, I don't understand: remote.c is not specific to Windows, so it
> cannot include any Windows-specific calls like SuspendThread.
I think the easiest is probably for you to take a look at the code
in gdb/gdbserver/win32-low.c. This file actually also has a routine
called thread_rec, and generally speaking, the code in gdb/*-nat.c
and the corresponding gdb/gdbserver/*-low.c can (and probably should)
be very similar - at least until we can factorize that code and reuse
the gdbserver code in GDB.
The reason I was mentioning remote.c is because, when you use GDBserver,
GDBserver does all the inferior control for GDB. It's like a mini
debugger, except that it does not have a user interface, only a serial
interface that GDB can used to communicate with it and send it orders
such as read or write memory, next/step operations, continue, kill,
etc. So, even if you are using a Windows native debugger, as soon as
you type the "target remote [...]" command, the windows-nat target
gets swapped out in favor of the "remote" target, which then delegates
the inferior control to the agent (gdbserver). The code that does that
delegation is in remote.c.
So, to try to reproduce with GDBserver, you'd have to do the following.
In one terminal, start your program with gdbserver. For instance:
% gdbserver --debug :4567 YOUR_PROGRAM
It'll write a message saying that the program has been started,
and that it's now waiting for a connection on port 4567. The --debug
switch is not normally necessary, but allows us to turn warnings on,
which then allows us to determine whether or not we reproduced the
problem in GDB.
Next, start GDB in a second terminal, and connect to it via:
% gdb YOUR_PROGRAM
(gdb) target remote :4567
The "target remote [...]" command replaces the "run" command.
From there, everything else should be the same as the reproducer
you have for the case where GDBserver isn't involved.
And instead of seeing the warning in the GDB console, you would
see it in the terminal where gdbserver was started. The idea for
solving the issue on the gdbserver side would be to apply the very
same sort of change you applied to windows-nat, but to win32-low,
essentially keeping the implementations in sync.
--
Joel
next prev parent reply other threads:[~2014-04-08 4:23 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-17 19:43 Eli Zaretskii
2014-03-18 16:16 ` Joel Brobecker
2014-03-18 16:35 ` Eli Zaretskii
2014-03-18 16:54 ` Joel Brobecker
2014-03-18 17:13 ` Eli Zaretskii
2014-03-18 17:33 ` Pedro Alves
2014-03-19 3:41 ` Eli Zaretskii
2014-03-19 10:07 ` Pedro Alves
2014-03-19 16:24 ` Eli Zaretskii
2014-03-19 16:41 ` Pedro Alves
2014-03-26 18:49 ` Eli Zaretskii
2014-03-27 12:56 ` Joel Brobecker
2014-03-27 17:41 ` Eli Zaretskii
2014-03-28 13:00 ` Joel Brobecker
2014-03-28 17:29 ` Eli Zaretskii
2014-03-28 14:50 ` Pedro Alves
2014-03-28 17:35 ` Eli Zaretskii
2014-03-28 17:49 ` Pedro Alves
2014-03-28 18:30 ` Eli Zaretskii
2014-03-31 15:31 ` Eli Zaretskii
2014-04-05 9:06 ` Eli Zaretskii
2014-04-07 16:58 ` Joel Brobecker
2014-04-07 17:09 ` Pedro Alves
2014-04-07 18:25 ` Eli Zaretskii
2014-04-07 21:39 ` Joel Brobecker
2014-04-08 2:44 ` Eli Zaretskii
2014-04-08 4:23 ` Joel Brobecker [this message]
2014-04-08 15:17 ` Eli Zaretskii
2014-04-08 11:32 ` Pedro Alves
2014-04-08 16:43 ` Pedro Alves
2014-04-08 17:10 ` Eli Zaretskii
2014-04-08 17:36 ` Pedro Alves
2014-04-08 17:54 ` Eli Zaretskii
2014-04-11 20:06 ` Joel Brobecker
2014-04-19 8:33 ` Eli Zaretskii
2014-04-21 15:43 ` Joel Brobecker
2014-04-21 15:59 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140408042331.GF4250@adacore.com \
--to=brobecker@adacore.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox