Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Michael Matz <matz@suse.de>
To: Simon Marchi <simon.marchi@polymtl.ca>
Cc: Daniel Berlin <dberlin@dberlin.org>,
	Martin Sebor <msebor@gmail.com>,     Manfred <mx2927@gmail.com>,
	gdb@sourceware.org, GCC <gcc@gcc.gnu.org>
Subject: Re: gdb 8.x - g++ 7.x compatibility
Date: Wed, 07 Feb 2018 16:26:00 -0000	[thread overview]
Message-ID: <alpine.LSU.2.21.1802071623250.30754@wotan.suse.de> (raw)
In-Reply-To: <6394368bca446f08119118a0f88a30b7@polymtl.ca>

Hi,

On Wed, 7 Feb 2018, Simon Marchi wrote:

> This addresses the issue of how to do good software design in GDB to 
> support different producers cleanly, but I think we have some issues 
> even before that, like how to support g++ 7.3 and up.  I'll try to 
> summarize the issue quickly. It's now possible to end up with two 
> templated classes with the same name that differ only by the signedness 
> of their non-type template parameter.  One is Foo<int N> and the other 
> is Foo<unsigned int N> (the 10 is unsigned).  Until 7.3, g++ would 
> generate names like Foo<10> for the former and names like Foo<10u> for 
> the later (in the DW_AT_name attribute of the classes' DIEs). Since 7.3, 
> it produces Foo<10> for both.

Yeah, gdb needs a way to lookup types by name, and since the change 
DW_AT_name can't be used for this anymore.  Either that needs to be 
fixed/reverted, or we do the more obvious thing: since types in C++ have 
linkage it makes sense to add the linkage (i.e. mangled) name to the types 
DIE using the traditional DW_AT_MIPS_linkage_name.

That latter solution would have the advantage that you don't need to 
demangle anything anymore.  From vtable you get to typeinfo, from there 
for typeinfo name, and that contains the mangled type name (without _Z 
prefix).


Ciao,
Michael.


  parent reply	other threads:[~2018-02-07 16:26 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-03  3:17 Roman Popov
2018-02-03  3:57 ` carl hansen
2018-02-03  4:54 ` Simon Marchi
2018-02-03  5:02   ` Roman Popov
2018-02-03  6:43   ` Roman Popov
2018-02-03 14:20   ` Paul Smith
2018-02-03 17:18     ` Roman Popov
2018-02-03 18:36       ` Manfred
2018-02-04  5:02         ` Simon Marchi
2018-02-04 17:09           ` Manfred
2018-02-04 19:17           ` Martin Sebor
2018-02-05  5:07             ` Simon Marchi
2018-02-05 16:45               ` Martin Sebor
2018-02-05 16:59                 ` Simon Marchi
2018-02-05 17:44                   ` Roman Popov
2018-02-05 20:08                     ` Jonathan Wakely
2018-02-05 20:10                       ` Roman Popov
2018-02-05 20:12                         ` Jonathan Wakely
2018-02-05 20:17                           ` Roman Popov
2018-02-06  3:52                   ` Martin Sebor
2018-02-07  7:21                     ` Daniel Berlin
2018-02-07 13:44                       ` Simon Marchi
2018-02-07 15:07                         ` Manfred
2018-02-07 15:16                           ` Jonathan Wakely
2018-02-07 16:19                             ` Manfred
2018-02-07 16:26                         ` Michael Matz [this message]
2018-02-07 16:43                           ` Simon Marchi
2018-02-07 16:51                             ` Jonathan Wakely
2018-02-07 17:03                               ` Simon Marchi
2018-02-07 17:08                                 ` Jonathan Wakely
2018-02-07 17:20                                   ` Simon Marchi
2018-02-07 17:30                                     ` Jonathan Wakely
2018-02-07 18:28                                       ` Simon Marchi
2018-02-08 11:26                                         ` Michael Matz
2018-02-08 14:05                                           ` Paul Smith
2018-02-08 14:07                                             ` Jonathan Wakely
2018-02-07 17:31                                     ` Marc Glisse
2018-02-07 17:04                         ` Daniel Berlin
2018-02-07 17:11                           ` Daniel Berlin
2018-02-07 22:00                             ` Nathan Sidwell
2018-02-07 20:29                           ` Tom Tromey
2018-02-08 15:05               ` Richard Biener
2018-03-01 20:18                 ` Roman Popov
2018-03-01 20:26                   ` Andrew Pinski
2018-03-01 21:03                     ` Jason Merrill
2018-03-02 23:06                       ` Roman Popov
2018-03-03  4:01                         ` Roman Popov
2018-03-04  4:28                         ` Daniel Berlin
2018-02-05 11:05             ` Jonathan Wakely
2018-02-07 15:19           ` Jonathan Wakely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LSU.2.21.1802071623250.30754@wotan.suse.de \
    --to=matz@suse.de \
    --cc=dberlin@dberlin.org \
    --cc=gcc@gcc.gnu.org \
    --cc=gdb@sourceware.org \
    --cc=msebor@gmail.com \
    --cc=mx2927@gmail.com \
    --cc=simon.marchi@polymtl.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox