Re: Expected output of gdb.cp/no-dmgl-verbose.exp

David Blaikie via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAENS6EuHU09e=Kunz7R6R2tLE-sb-NajvuaDfbdOpom4yfZpTw@mail.gmail.com>
FWIW - at least some Clang folks are working on adding a
"preferred_name" attribute ( https://reviews.llvm.org/D91311 ) which
would be used to help tools understand that std::basic_string<char,
... is best known as std::string. Perhaps we'll end up with a
DW_AT_preferred_name attribute in DWARF to make this more explicit/not
needing consumers to guess or otherwise encode heuristically which
names should be used.

On Mon, Apr 12, 2021 at 1:02 PM Luis Machado via Gdb <[email protected]> wrote:
>
> On 4/12/21 3:45 PM, Keith Seitz wrote:
> > On 4/12/21 11:16 AM, Luis Machado via Gdb wrote:
> >> I'm trying to determine why this particular test is failing (for both
> >> aarch64-linux and x86_64-linux on Ubuntu 18.04/20.04) and what the
> >> expected outcome is.
> >>
> >> In my case, the only symbol I see for function "f" is the following:
> >>
> >> "f(std::__cxx11::basic_string<char, std::char_traits<char>,
> >> std::allocator<char> >)"
> >>
> >> There is no "f(std::string)" nor "f(std::basic_string<char,
> >> std::char_traits<char>, std::allocator<char> >)" symbol.
> >>
> >
> > Wow, such a long time ago! IIRC...
>
> Indeed. I vaguely remember that, back in ~2011 IIRC. But obviously not
> enough to figure out what was going on.
>
> >
> > This test was written to ensure that "std::string" was used
> > instead of "std::basic_string<...>" (which is now called something
> > else again). Something about "that's what nm and other tools tell users,
> > so we should not mention the symbol's real (linkage) name, either."
> >
> > The "no-dmgl-verbose" refers to the DMGL_VERBOSE option
> > of the demangler, which does this.
> >
> > There is even special logic in our typedef-replacing machinery to
> > enforce this. [NOTE: `ignore_typedefs' in cp-support.c is also "out-
> > of-date" wrt to this naming change. So none of that has likely been
> > "working" for many years, but then at very quick glance, "nm -C" doesn't
> > do this anymore, either.]
>
> Ah, that makes it much more clear. Thanks for the explanation.
>
> >
> > I was against it then, so I certainly do not mind getting rid of this test
> > or limiting it to C++ installations that typedef the "older" std::basic_string<...>
> > to std::string.
>
> I think keeping it may be more confusing than useful. I'll propose its
> removal on gdb-patches@ and we'll see where we go from there.
>
> Thanks Keith.
>
> >
> > Keith
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.