http://sourceware.org/bugzilla/show_bug.cgi?id=15646
Bug ID: 15646
Summary: gold-generated .gdb_index has duplicated symbols that
gdb-generated index doesn't
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: gold
Assignee: ian at airs dot com
Reporter: dje at google dot com
CC: ccoutant at google dot com
The gdb-generated .gdb_index doesn't have duplicate entries in the symbol table
for classes and namespaces (gdb's .gdb_index is based on its partial symbols,
and gdb only keeps one copy of global partial syms).
The gold-generated .gdb_index does have duplicate entries for classes and
namespaces. This causes performance issues in gdb.
e.g. "break foo::misspelled" will expand the debug info for every CU recorded
for "foo" in .gdb_index.
Example:
foo.h:
namespace N1
{
class C1
{
public:
static void baz () {}
};
}
foo-1.cc:
#include "foo.h"
namespace N1
{
void foo () { C1::baz (); }
}
int
main ()
{
return 0;
}
foo-2.cc:
#include "namespace-n.h"
namespace N1
{
void bar () { C1::baz (); }
}
The gold generated index has:
[721] N1::C1::baz:
2 [global function]
3 [global function]
[759] N1:
2 [global type]
3 [global type]
[961] N1::C1:
2 [global type]
3 [global type]
The gdb generated index has:
[721] N1::C1::baz: 2 [global function]
[759] N1: T0 [global type]
[961] N1::C1: T0 [global type]
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils