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 > >