Re: GDB now takes 4 minutes to start up with remote gdbserver target

Gary Benson
2015-07-29T10:39:53Z

Pedro Alves wrote:
> On 07/28/2015 05:54 PM, Doug Evans wrote:
> > On Fri, Jul 24, 2015 at 1:52 AM, Gary Benson <gbenson@redhat.com> wrote:
> >>> (3) Once the "c" command is issued, there's nothing to inform the
> >>> user exactly what GDB is doing or that this can be a very slow
> >>> operation (e.g., with a progress bar).
> >>
> >> This is kind of a shortcoming of GDB in general. There was a similar
> >> issue relating to tab-completion in programs with lots of symbols:
> >>
> >> https://sourceware.org/bugzilla/show_bug.cgi?id=11920
> >>
> >> I don't have a good solution for this.
> >
> > I'm sure there are fine solutions.
> > The problem is getting gdb to a point where
> > good solutions fit in easily, without having to
> > do something specific for each case.
>

> I agree. I worry much about lots of "smartness" at the last minute,
> and then be stuck with it. The "target:" sysroot is simple to
> explain and reason about. The new proposal, not so much.

Agreed.

I'm in no way pushing the series I posted, I made it more to turn
what was previously a thought experiment into something more concrete.
I should maybe have posted it as an RFC...

> Also, with Aleksandar/Jan's gdbserver build-id validation series in
> place, we may be able to come up with a different/better solution.

Yes. Jan told me he was considering changing sysroot to a multiple-
component path, with the default being something like "/:target:/".
This should work really nicely, but it only makes sense with build-id
validation (it's just too easy to get the wrong files otherwise).
I'm assuming we can cope with the fact that the separator ":" appears
in "target:" somehow :)

> If resolving the interruptability and adding a suggestive warning
> is deemed insufficient resolution (though I think we should try it
> first), then I think it's too late to add too much magic, and we should
> change the default sysroot back to "" by default. Users can still then
> put "set sysroot target:" in .gdbinit with 7.10, and we can continue
> addressing identified issues until "target:" (or something around it)
> can be made the default, on master.

I'm going to look at adding a warning.

Note that reverting the sysroot back to "" is not exactly zero-risk
given that GDB is now more aggressive in discovering executable
filenames from remote targets.

Cheers,
Gary

--