From: Keith Seitz <keiths@redhat.com>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFA] 12266 (typedef'd parameters) revisited again - what should go for gdb-7.3?
Date: Tue, 07 Jun 2011 20:32:00 -0000 [thread overview]
Message-ID: <4DEE8AC5.2080805@redhat.com> (raw)
In-Reply-To: <20110607201143.GA10923@host1.jankratochvil.net>
On 06/07/2011 01:11 PM, Jan Kratochvil wrote:
> You have said off-list you have a fix but you still run the real-world .debug
> files regression tests on top of it.
A fix, but not a complete fix. I am running tests against libstdc++, and
that is uncovering some additional problems.
> I believe the replace_typedefs part (DEMANGLE_COMPONENT_* typedef
> replacements) should be cross-checked against `set debug check-physname on'
> which I guess hasn't been done yet.
I agree, and I will do that when I can successfully get through
libstdc++ (and libwebkit, others?).
> The question (at least for me) is now which parts of this patch should go for
> 7.3 and which only for 7.4+:
>
> It can be split into the parts before before:
> 1/4: changes cp-name-parser.y to not use shared memory.
> 2/4: differences between print names and "linkage names" (physnames).
> 3/4: cp_canonicalize_no_typedefs to decode_variable and decode_compound
> 4/4: tests for this new feature.
#2 is quite independent of the others. #1 is only needed for #3 (as is
#4). IMO, #3 is a long ways away, and as it addresses new features, it
is far too risky to include in 7.3.
So the only one I would consider is #2, which addresses differences in
physname/DW_AT_linkage_name and "print" names. If that has actual
benefits to something today, we can decide to include it. You have,
however, found other ways to "skin the cat," so this might not be needed
until the rest of the 12266 patch is really ready to go in.
> PR 12506 is I believe fixed by 2/4. But for compilers featuring
> DW_AT_MIPS_linkage_name (=G++) it is fixed also by the more general:
> Re: [patch] Follow DW_AT_linkage_name for methods #2
> http://sourceware.org/ml/gdb-patches/2011-06/msg00040.html
> And I believe I could still find a countercase where DW_AT_linkage_name is
> more correct than the current physname code.
I would say this part is really at your/maintainer's discretion(s). I
have been working under the assumption that we were all in agreement
about moving to preferring DW_AT_linkage_name over physnames.
In this context, I would say (as I always do), take the least risky
approach, and I do not think today that
cp_canonicalize_string_no_typedefs is the least risky. Like physnames,
it works in a great many instances, but it is far from perfect/bug-free.
> ctors/dtors do not have DW_AT_MIPS_linkage_name but for class based naming
> (C::C or C::~C) one can drop to the minimal symbols (the fallback needs to
> work even for other cases):
> [patch 1/2] physname reg.: linespec minsym fallback
> http://sourceware.org/ml/gdb-patches/2011-06/msg00079.html
> and one IMO cannot use linespec to refer to ctors/dtors (only to regular
> methods) during variable base naming (var.C or var.~C) - where the minsym
> fallback is not applicable and where decode_compound could be useful.
Additionally, I would even suggest adding a fallback to decode_variable
if decode_compound fails. This is, I believe, the biggest linespec
regression honey pot we've seen.
> The 3/4 is a new feature for PR 12266. GDB could never
> do `break f(typedefparam)', I do not think it needs to go for 7.3 so late.
Absolutely agreed.
Keith
next prev parent reply other threads:[~2011-06-07 20:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-03 23:34 [RFA] 12266 (typedef'd parameters) revisited again Keith Seitz
2011-06-05 13:28 ` Jan Kratochvil
2011-06-07 20:12 ` [RFA] 12266 (typedef'd parameters) revisited again - what should go for gdb-7.3? Jan Kratochvil
2011-06-07 20:32 ` Keith Seitz [this message]
2011-06-07 20:44 ` Jan Kratochvil
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=4DEE8AC5.2080805@redhat.com \
--to=keiths@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
/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