[cfe-dev] [llvm-dev] Emiting linkage names for Types to Debuginfo (C++ RTTI support in GDB/LLDB)

Daniel Berlin via cfe-dev cfe-dev at lists.llvm.org
Sat Mar 3 20:20:39 PST 2018


On Fri, Mar 2, 2018 at 3:58 PM, Roman Popov via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi all,
>
> As you may know modern C++ debuggers (GDB and LLDB) support dynamic type
> identification for polymorphic objects, by utilizing C++ RTTI.
> Unfortunately this feature does not work with Clang and GDB >= 7.x .  The
> last compiler that worked well was G++ 6.x
>
> I've asked about this issue both on GDB and LLDB maillists. Unfortunately
> it's hard or impossible to fix it on debugger side.
>

Errr, i posited a solution on the gdb mailing list that i haven't seen shot
down so far, that doesn't require linkage names, it only requires one new
attribute that is a DW_FORM_ref, and very cheap.

I also wrote the RTTI code for GDB :)

Currently what debugger has to do is to demangle RTTI name and try to match
> it to DW_AT_name attribute to find type. As you can see it does not work
> for any of 3 examples.
>
> I've asked about the problem on G++ maillist, and one of the proposed
> solutions is to emit DW_AT_linkage_name for types.
>
> Can this solution be also implemented in LLVM?
>

Please, no.

This is completely unneeded and wastes a huge amount of space.

As you can see from the replies to my solution on the gdb mailing list, it
is used by other languages (rust, for example) *anyway*, so we might as
well use it for C++ too.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180303/b86ba382/attachment.html>


More information about the cfe-dev mailing list