From: "Ulrich Weigand" <uweigand@de.ibm.com>
To: koriakin@0x04.net (Marcin Kościelnicki)
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 1/3] gdbserver/IPA: Export some functions via global function pointers.
Date: Mon, 14 Mar 2016 17:49:00 -0000 [thread overview]
Message-ID: <20160314174925.5A6541537@oc7340732750.ibm.com> (raw)
In-Reply-To: <56E6D07B.5050306@0x04.net> from "=?UTF-8?Q?Marcin_Ko=c5=9bcielnicki?=" at Mar 14, 2016 03:53:47 PM
Marcin KoÃ
Âcielnicki wrote:
> On 14/03/16 15:41, Ulrich Weigand wrote:
> > I'm not sure I really like your approach, it seems odd to make common
> > code jump through "unnatural" hoops just so that powerpc64 works.
> > On the other hand, your approach certainly involves the least amount
> > of changes to the current code base.
> >
> Yeah, I'm not that happy with it either... but we're going to need to
> jump through some hoops in gdbserver anyway - eg. for gdb_collect, we
> need the descriptor address, while for stop_tracing, we need the code
> address. So we will need some special handling for one of these sets of
> symbols either way, and uglify the common code with it.
That's certainly true as well. Also, implementing the descriptor to
code address lookup in exactly the same way as GDB does might be
difficult for gdbserver to do, since it is currently reading the BFD,
which gdbserver doesn't have available.
> > I am somewhat confused about one thing, though. In your other patch
> > https://sourceware.org/ml/gdb-patches/2016-03/msg00201.html
> > you seem to imply that qSymbol for function symbols simply does not
> > work at all on powerpc64 at the moment.
>
> It works *sometimes* - I'm not sure what it depends on, as I'm not
> familiar with BFD internals, but it seems gdb could have the necessary
> information cached and not need to read the file during qSymbol
> processing. I, for one, had one hell of a debugging session, since my
> simple test program linked against the IPA had all the IPA symbols
> properly fetched, while the testsuite programs failed at the same.
> Could be something like library load order...
Hmm. I just checked, and it turns out that as of Dec 2015 gdbserver
actually no longer even uses the td_ta_set_event libthread_db
callback at all. Instead, it now always relies on PTRACE_EVENT_CLONE
to detect new inferior threads. This means that thread support
shouldn't actually require qSymbol on a function symbol any more.
In addition, it probably used to work in the past because GDB only
uses the vFile packet when it is reading the target libraries from
the target itself. In past, GDB usually required copies of the
target libraries to be present on the host system as well, and
used them from there. While there was support for loading target
libraries remotely for a while, it was only made default about
a year ago.
> Yep, I thought about it, but there's the protocol compatibility issue...
The more I think about it, the more I tend to agree that your
proposal is actually the best solution. I'd still like to give
it a couple of days to give others a chance to comment as well ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
Ulrich.Weigand@de.ibm.com
next prev parent reply other threads:[~2016-03-14 17:49 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-13 2:31 [PATCH 0/3] gdbserver: Add powerpc fast tracepoint support Marcin Kościelnicki
2016-03-13 2:32 ` [PATCH 2/3] IPA: Add alloc_jump_pad_buffer target hook Marcin Kościelnicki
2016-03-18 15:08 ` [PATCH 2/4 v2] " Marcin Kościelnicki
2016-03-29 18:18 ` Ulrich Weigand
2016-03-29 22:04 ` Marcin Kościelnicki
2016-03-30 11:38 ` Ulrich Weigand
2016-03-30 14:50 ` Yao Qi
2016-03-30 14:58 ` Ulrich Weigand
2016-03-31 7:34 ` Yao Qi
2016-03-31 11:37 ` Ulrich Weigand
2016-03-31 1:16 ` [PATCH 2/4 v3] " Marcin Kościelnicki
2016-03-31 11:38 ` Ulrich Weigand
2016-03-31 13:42 ` Marcin Kościelnicki
2016-04-01 14:43 ` Ulrich Weigand
2016-04-03 12:31 ` [PATCH] IPA: Fix build problem on !HAVE_GETAUXVAL Marcin Kościelnicki
2016-04-03 16:26 ` Ulrich Weigand
2016-04-03 16:28 ` Marcin Kościelnicki
2016-04-04 14:41 ` Ulrich Weigand
2016-04-05 13:33 ` [PATCH] IPA: Move getauxval out of #ifndef IN_PROCESS_AGENT Marcin Kościelnicki
2016-04-05 15:04 ` Ulrich Weigand
2016-04-05 16:55 ` Marcin Kościelnicki
2016-03-13 2:32 ` [PATCH 3/3] gdbserver: Add powerpc fast tracepoint support Marcin Kościelnicki
2016-03-14 22:10 ` [PATCH 3/4 v2] " Marcin Kościelnicki
2016-03-16 16:58 ` Ulrich Weigand
2016-03-16 17:55 ` Marcin Kościelnicki
2016-03-17 6:30 ` Ulrich Weigand
2016-03-18 15:09 ` [PATCH v2 3/4] " Marcin Kościelnicki
2016-03-29 18:23 ` Ulrich Weigand
2016-03-30 14:52 ` Simon Marchi
2016-03-30 14:57 ` Ulrich Weigand
2016-03-30 15:24 ` Simon Marchi
2016-03-30 15:28 ` Simon Marchi
2016-03-30 15:35 ` Ulrich Weigand
2016-03-31 1:31 ` Marcin Kościelnicki
2016-03-31 11:39 ` Ulrich Weigand
2016-03-31 13:45 ` Marcin Kościelnicki
2016-03-13 2:32 ` [PATCH 1/3] gdbserver/IPA: Export some functions via global function pointers Marcin Kościelnicki
2016-03-14 14:41 ` Ulrich Weigand
2016-03-14 14:53 ` Marcin Kościelnicki
2016-03-14 17:49 ` Ulrich Weigand [this message]
2016-03-22 9:19 ` Marcin Kościelnicki
2016-03-29 18:08 ` Ulrich Weigand
2016-03-29 21:51 ` Pedro Alves
2016-03-30 11:30 ` Ulrich Weigand
2016-03-29 21:52 ` Marcin Kościelnicki
2016-03-30 11:32 ` Ulrich Weigand
2016-03-30 22:02 ` Marcin Kościelnicki
2016-03-31 18:22 ` Sergio Durigan Junior
2016-03-31 21:42 ` [PATCH obv] gdbserver: Fix C++ build errors in tracepoint.c Marcin Kościelnicki
2016-03-14 17:08 ` [PATCH 1/3] gdbserver/IPA: Export some functions via global function pointers Simon Marchi
2016-03-14 17:40 ` Ulrich Weigand
2016-03-14 22:25 ` [PATCH 4/4] gdbserver: Add emit_ops for powerpc Marcin Kościelnicki
2016-03-16 17:16 ` Ulrich Weigand
2016-03-18 15:10 ` [PATCH v2 " Marcin Kościelnicki
2016-03-29 18:25 ` Ulrich Weigand
2016-03-31 13:45 ` Marcin Kościelnicki
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=20160314174925.5A6541537@oc7340732750.ibm.com \
--to=uweigand@de.ibm.com \
--cc=gdb-patches@sourceware.org \
--cc=koriakin@0x04.net \
/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