From: Doug Evans <dje@google.com>
To: Cary Coutant <ccoutant@google.com>
Cc: Tom Tromey <tromey@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [RFA] Add global/static and symbol kind indicator to .gdb_index
Date: Sat, 23 Jun 2012 19:59:00 -0000 [thread overview]
Message-ID: <CADPb22RZFVxPJP0hH14KyqN7ULVhAGiXEUEue8niYoK0xEzNTw@mail.gmail.com> (raw)
In-Reply-To: <CAHACq4qC2Oek_68_cNy2kJ-HkVnn6AwXWRceoG4aiU3E-oBmQg@mail.gmail.com>
On Fri, Jun 22, 2012 at 2:20 PM, Cary Coutant <ccoutant@google.com> wrote:
>> Doug> The global/static bit massively speeds up looking up things like
>> Doug> "int" when debugging with lots of shared libraries (all having
>> Doug> .gdb_index). PR 14125
>>
>> Tom> I don't think this patch is needed to achieve this. At least, the "int"
>> Tom> case and other similar cases were fixed by:
>>
>> Doug pointed out on irc that I was mistaken here.
>> The issue in his case is that, even though each individual index has a
>> single entry for "int", there are still many indices, so gdb still does
>> excessive CU expansion.
>> I'm sorry for the error.
>
> Is there still something I need to fix in gold in this regard? I think
> gold will produce an index entry for "int" in every CU that mentions
> it. If the right thing to do is to have only one CU, how do I decide
> what kinds of names get this treatment? (For example, some arbitrary
> type "struct foo" might actually be a different type, and you'd want
> multiple index entries.)
As a data point, using -fshort-double I created a program where gdb's
behaviour with the index is different than its behaviour without it.
Things like -fshort-double aren't well supported anyway, so I don't
know if this particular issue is something we want to worry about in
the near term.
fshort-double.c:
double normal_double;
extern void foo (void);
int
main ()
{
foo ();
return 0;
}
fshort-double-1.c:
double short_double;
void
foo ()
{
short_double = 42;
}
$ gcc -g -c fshort-double.c
$ gcc -g -c -fshort-double fshort-double-1.c
$ gcc -g fshort-double.o fshort-double-1.o
$ gdb a.out
(gdb) b foo
(gdb) p sizeof(double)
4
then
$ gdb-add-index a.out
$ gdb a.out
(gdb) b foo
(gdb) p sizeof(double)
8
[I can well believe there is more than one bug here though. :-)]
next prev parent reply other threads:[~2012-06-23 19:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-19 7:49 Doug Evans
2012-06-19 14:01 ` Pedro Alves
2012-06-19 16:08 ` Eli Zaretskii
2012-06-19 19:41 ` Doug Evans
2012-06-22 19:45 ` Tom Tromey
2012-06-22 21:03 ` Tom Tromey
2012-06-22 21:20 ` Cary Coutant
2012-06-23 19:59 ` Doug Evans [this message]
2012-06-25 14:53 ` Tom Tromey
2012-06-25 15:06 ` Tom Tromey
2012-06-23 22:25 ` Doug Evans
2012-06-24 8:09 ` Doug Evans
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=CADPb22RZFVxPJP0hH14KyqN7ULVhAGiXEUEue8niYoK0xEzNTw@mail.gmail.com \
--to=dje@google.com \
--cc=ccoutant@google.com \
--cc=gdb-patches@sourceware.org \
--cc=tromey@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