Re: time to workaround libc/13097 in fsf gdb?

Jan Kratochvil
2014-09-17T20:10:59Z

On Fri, 12 Sep 2014 14:46:23 +0200, Pedro Alves wrote:
> On 09/12/2014 01:33 PM, Jan Kratochvil wrote:
> > On Fri, 12 Sep 2014 14:14:36 +0200, Pedro Alves wrote:
> >> I was more inclined to leave the vdso in the shared library list
> >> though, like ldd does, than filtering it out. Like, similar to
> >> your gdbarch_solib_file_not_found_is_ok patch, but look at the
> >> addresses rather than filenames in the hook. I'm not sure
> >> whether that'd complicate things too much.
> >
> > Everything can be done but this is again changing a direction/behavior of GDB
> > upon receiving a fix of current behavior. So far GDB has not been including
> > vDSO in the library list and the patch was fixing that behavior. One can go
> > very far from doing one fix up to rewriting GDB from scratch.
>
> I think that's a bit uncalled for and unfair -- AIUI, your original patch
> even did that; it left vdso.so in the list.
>
> I had said:
>
> "Alternatively to hard coding the names, maybe we could match the vdso address
> found through that with the addresses found iterating the dynamic linker list, to
> know which dynamic linker entry is the vdso."
>
> And your new patch said:
>
> "But now it discards any shared libraries which match a symbol file loaded via
> add-symbol-file-from-memory. Which may be OK but it is more widespread change
> than before."
>
> I was only clarifying what I had already said in the message
> you replied to.

Do you mean that "Alternatively to hard coding the names, maybe we could" was
only an idea which I should have ignored? I had the title global maintainer
that time so I probably should have checked in a patch after a timeout but
I always found the timeout rule (if there is any such rule) broken relying on
a luck, compared to Gerrit's flagging of patches by multiple maintainers.

> I have no idea what problems you found in the original patch that led to
> redesigning the patch to filter out instead,

As there was the discussion whether the list of names of former patch
Message-ID: <20121122201737.GA32172@host2.jankratochvil.net>
is complete and whether one should not use the address match instead.

The new patch
Message-ID: <20121125181505.GA26194@host2.jankratochvil.net>
filters-out the vDSO from library list as is done by FSF GDB HEAD.

Each of the patches is considered to have some disadvantages, IIUC.
But all of them are just theoretical in the usual GDB nitpicking style.

> or what you saw that would suggest that doing that change would require
> tilting so much in the "rewriting GDB from scratch" direction.

For each fix of GDB one has to consider how widespread the fix should be.

Any fix present on gdb-patches is wrong as it is not written in an
effective/maintainable language (C++/Java/C#/others). Therefore a full fix
would be always to rewrite GDB into C++/Java/C#/others first - that I call
"rewriting GDB from scratch". But that I consider as a too large task to do
for any of the fixes, particularly because is then more effective to rather
start extending LLDB instead.

So a metric of a best fix does not work. Another possible metric is to make
a fix in minimal time/effort/cost so that the user is no longer affected by
the specific bug being addressed. This metric I try to follow.

You seem to evaluate the patches by some other metric which I cannot guess
myself in advance to coding a patch.

Jan