public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Andreas Arnez <arnez@linux.ibm.com>
To: Simon Marchi <simon.marchi@ericsson.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH 3/3] Fix a FAIL in attach.exp under native-extended-gdbserver
Date: Wed, 25 Apr 2018 09:32:00 -0000	[thread overview]
Message-ID: <m34ljzfxa4.fsf@oc1027705133.ibm.com> (raw)
In-Reply-To: <bc0be934-6cca-2beb-197f-d429fa8e13c7@ericsson.com>

Sorry for the delay...

On Thu, Mar 15 2018, Simon Marchi wrote:

> Hi Andreas,
>
> On 2018-03-14 12:11 PM, Andreas Arnez wrote:
>> The attach.exp test case yields a FAIL with native-extended-gdbserver when
>> trying to start a new process.  This is because gdbserver does not support
>> starting new processes.  And since the gdbserver-base board file sets the
>> GDB command line option -ex "set auto-connect-native-target off", the
>> process is not started on the native target either.  An error message
>> results instead:
>> 
>>   Don't know how to run.  Try "help target".
>> 
>> Thus just accept this error when not running on a native target.
>
> It is not true that gdbserver can't run a new process, in fact it can in the
> extended-remote protocol (as opposed to remote).  Start gdbserver with:
>
>  $ ./gdbserver/gdbserver --once --multi :1234
>
> And
>
>  $ ./gdb --data-directory=data-directory
>  (gdb) tar ext :1234
>  (gdb) set remote exec-file /usr/bin/gnome-calculator
>  (gdb) run

Thanks, you're right, of course.

What really happens here is that attach.exp tries to start GDB with the
command line options "--pid=<pid>" and "-ex start", using
gdb_spawn_with_cmdline_opts.  However, gdb_spawn_with_cmdline_opts is
not overridden in native-extended-gdbserver.exp.  Thus we just fire up
GDB without setting an extended-remote target, and without having
started gdbserver.  And due to "auto-connect-native-target off", the
"start" command then responds with the error message above.

The test suite contains some other "gdb_spawn*" invocations, all having
the same problem.  To fix this, we should override these procs.

>
> Still, I first thought this test wouldn't be applicable to the extended-remote
> protocol because I though you couldn't mix -p with connecting to a remote target
> on startup, but it seems like this works:
>
>  $ pidof gnome-calculator
>  20001
>  $ ./gdb --data-directory=data-directory -iex "tar ext :1234" -p 20001  -ex "set remote exec-file /usr/bin/gnome-calculator" -ex "start"
>
> So it might be possible to tweak the test case to adapt it to the extended-remote
> protocol (add the -iex and "set remote exec-file" bits).

Actually, after investigating this a bit further I wonder why "set
remote exec-file" should even be necessary.  In the native case GDB
takes care of this for the user, if possible.  And this is exactly what
the test case tries to verify here.  IMHO extended-remote should behave
the same.  So I think the current behavior is a usability bug and should
be fixed.

I've been working on some patches for this.  I'll send them around
later.

--
Andreas

  reply	other threads:[~2018-04-25  9:32 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14 16:12 [PATCH 0/3] Some gdbserver test suite fixes Andreas Arnez
2018-03-14 16:13 ` [PATCH 3/3] Fix a FAIL in attach.exp under native-extended-gdbserver Andreas Arnez
2018-03-15 22:17   ` Simon Marchi
2018-04-25  9:32     ` Andreas Arnez [this message]
2018-03-14 16:13 ` [PATCH 1/3] Fix tspeed test case: copy libinproctrace to target Andreas Arnez
2018-03-15 21:40   ` Simon Marchi
2018-03-16 19:41     ` Andreas Arnez
2018-03-14 16:13 ` [PATCH 2/3] Testsuite: Rename "end()" to avoid libinproctrace C++ symbol clash Andreas Arnez
2018-03-15 21:58   ` Simon Marchi
2018-03-16 19:47     ` Andreas Arnez
2018-03-16 21:57       ` Simon Marchi
2018-03-19 12:15         ` Andreas Arnez
2018-03-26 14:44       ` Pedro Alves

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=m34ljzfxa4.fsf@oc1027705133.ibm.com \
    --to=arnez@linux.ibm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=simon.marchi@ericsson.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).