This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfc 2/2] Follow DW_AT_linkage_name for methods [Re: The future of dwarf2_physname]


On 05/25/2011 01:40 PM, Tom Tromey wrote:
"Jan" == Jan Kratochvil<jan.kratochvil@redhat.com> writes:

Jan> Also after a chat with Tom Tromey I no longer use DMGL_RET_POSTFIX. Jan> That is for ELF symbol `long m<char>()' GDB with proposed patch Jan> uses `m<char>()' (and not `m<char>()long'). This is compatible Jan> with gdb-7.2 (physname) template functions.

This patch looks pretty good to me.

Keith, are there parts of your series which are still needed for 7.3 if
this patch is committed there?

If we want to fix 12266, yes, we're still going to need much of the patchset: cp_canonicalize_no_typedefs, printname, and the cp_demangled_name_parse_free patches. Those patches fix 12266 and a bunch of related problems (which are not regressions):


*** Using pre-physname:

(gdb) b calltest(foo)
Function "calltest(foo)" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b calltest(std::string)
Breakpoint 1 at 0x40075c: file 12266.cc, line 5.
(gdb) b calltest(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
Function "calltest(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n



*** Using DW_AT_linkage_name (Jan's patches):


(gdb) b calltest(foo)
Function "calltest(foo)" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b calltest(std::string)
Function "calltest(std::string)" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b calltest(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
Breakpoint 1 at 0x40075c: file 12266.cc, line 5.


*** Using 12266 patches (on top of Jan's DW_AT_linkage_name patches):

(gdb) b calltest(foo)
Breakpoint 1 at 0x40075c: file 12266.cc, line 5.
(gdb) b calltest(std::string)
Note: breakpoint 1 also set at pc 0x40075c.
Breakpoint 2 at 0x40075c: file 12266.cc, line 5.
(gdb) b calltest(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
Note: breakpoints 1 and 2 also set at pc 0x40075c.
Breakpoint 3 at 0x40075c: file 12266.cc, line 5.


Mind you, I don't know if I would recommend taking in such a big patch this late in the game... Nonetheless, I hope to have this resubmitted today.

Keith


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]