public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/15801] New: some C++11 symbols can't be demangled
@ 2013-07-30  1:06 b.r.longbons at gmail dot com
  2013-07-30  1:46 ` [Bug c++/15801] " keiths at redhat dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: b.r.longbons at gmail dot com @ 2013-07-30  1:06 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=15801

            Bug ID: 15801
           Summary: some C++11 symbols can't be demangled
           Product: gdb
           Version: unknown
            Status: NEW
          Severity: normal
          Priority: P2
         Component: c++
          Assignee: unassigned at sourceware dot org
          Reporter: b.r.longbons at gmail dot com

When debugging my program, I noticed that several symbols in a recursive
template failed. The simplest one is:
_Z7extractILc9ELi0EEbN7strings7XStringE6RecordIXT_EXT0_EJEE

I noticed a similar case in libiberty test data:
_Z1gIJidEEDTclL_Z1fEspplfp_Li1EEEDpT_

Talking directly to libiberty, my symbol also demangles. I have not observed
any difference between my symbol and that one.

The test entry specifies gnu-v3 (I haven't found any documentation on how that
is different than gnu - older or newer?), but (gdb) set demangle-style gnu-v3
does not make maintenance demangle accept it.

I have not observed any difference between gdb 7.6 and gdb trunk.

Note: the c++filt program, which is part of binutils, learned to understand the
symbol sometime between 2.22 and 2.23

Incidentally, this bug is an *excellent* argument for why static libraries
(and/or copylibs) need to die.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/15801] some C++11 symbols can't be demangled
  2013-07-30  1:06 [Bug c++/15801] New: some C++11 symbols can't be demangled b.r.longbons at gmail dot com
@ 2013-07-30  1:46 ` keiths at redhat dot com
  2013-07-30  5:04 ` b.r.longbons at gmail dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: keiths at redhat dot com @ 2013-07-30  1:46 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=15801

Keith Seitz <keiths at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |keiths at redhat dot com

--- Comment #1 from Keith Seitz <keiths at redhat dot com> ---
The two examples given demangle for me using 7.6.50.20130729-cvs, and they both
demangle identically to the Fedora 18 system c++filt (version
2.23.51.0.1-6.fc18 20120806):

$ ./gdb -nx -q
(gdb) set lang c++
(gdb) maint demangle
_Z7extractILc9ELi0EEbN7strings7XStringE6RecordIXT_EXT0_EJEE
bool extract<(char)9, 0>(strings::XString, Record<(char)9, 0>)
(gdb) maint demangle _Z1gIJidEEDTclL_Z1fEspplfp_Li1EEEDpT_
decltype (f(({parm#1}+(1))...)) g<int, double>(int, double)

In fact, I tried the 7.6 branch, and that, too, works the same way. So there is
something unique to your situation that is causing you problems. Do you have a
test case that you can share?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/15801] some C++11 symbols can't be demangled
  2013-07-30  1:06 [Bug c++/15801] New: some C++11 symbols can't be demangled b.r.longbons at gmail dot com
  2013-07-30  1:46 ` [Bug c++/15801] " keiths at redhat dot com
@ 2013-07-30  5:04 ` b.r.longbons at gmail dot com
  2013-07-30  5:57 ` b.r.longbons at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: b.r.longbons at gmail dot com @ 2013-07-30  5:04 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=15801

--- Comment #2 from Ben Longbons <b.r.longbons at gmail dot com> ---
I didn't realize you had to (gdb) set lang c++
I recommend a warning; I did not expect this from (gdb) help maint demangle

There *is*, however, still the bug that originally lead me on this hunt:

A previous version of gcc (4.6) mangled symbols wrong (I instead of J for
packs; I did read the mangling ABI spec), so (for bugward ABI compatibility)
recent versions of gcc (4.7, 4.8) emit two symbols pointing to the same
address.

I don't know if there actually remains enough information to consistently pick
the right one, unless you do a hacky heuristic like "if there is more than one
symbol for an address, prefer the one with more Js and less Is".

Oddly, however, c++filt 2.23 sometimes manages to demangle even the incorrect
mangling. But gdb sometimes gives up and sometimes produces a totally bogus
demangling (c++filt does not do this).

The exact details of this problem are hard to investigate because of bug 12707
... it sometimes makes a difference whether debug symbols are on or off. I'll
make an attachment with some further commentary.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/15801] some C++11 symbols can't be demangled
  2013-07-30  1:06 [Bug c++/15801] New: some C++11 symbols can't be demangled b.r.longbons at gmail dot com
  2013-07-30  1:46 ` [Bug c++/15801] " keiths at redhat dot com
  2013-07-30  5:04 ` b.r.longbons at gmail dot com
@ 2013-07-30  5:57 ` b.r.longbons at gmail dot com
  2013-08-01  5:53 ` b.r.longbons at gmail dot com
  2022-12-23 19:20 ` tromey at sourceware dot org
  4 siblings, 0 replies; 6+ messages in thread
From: b.r.longbons at gmail dot com @ 2013-07-30  5:57 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=15801

--- Comment #3 from Ben Longbons <b.r.longbons at gmail dot com> ---
Created attachment 7127
  --> http://sourceware.org/bugzilla/attachment.cgi?id=7127&action=edit
my original program, trimmed as much as possible without breaking types very
much

Some observations:
gcc 4.6 is best to test with, since it *only* emits the wrong symbols. With gcc
4.7 and gcc 4.8, this might be a heisenbug. clang only emits the right symbols
(but clang is still useless for compiling programs to be debugged).

puts() is there just to set a nice breakpoint.

The need to explicitly call 'set lang c++' before 'maint demangle' is *really*
annoying when using 'up' or 'frame' after a call to a C library.

Hm ... cosmetic issue, but perhaps gdb should not print the () if it
successfully demangles a name and it's not printing arguments

backtrace for gcc 4.6, attempting demangling:
(gdb) bt
#0  _IO_puts (str=0x4015ec "hello") at ioputs.c:34
#1  0x00000000004014ed in bool extract<(char)32, global_reg>(strings::XString,
VRecord<(char)32, global_reg>) ()
#2  0x0000000000401493 in bool extract<(char)9, 1, VRecord<(char)32,
global_reg>>(strings::XString, Record<(char)9, 1, VRecord<(char)32,
global_reg>>) ()
#3  0x0000000000401422 in extract<(char)9, 2, TimeT<VRecord<(char)32,
global_reg> >*> ()
#4  0x0000000000401391 in bool extract<(char)9, 3, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 3, strings::VString<(unsigned char)254>*, TimeT*,
VRecord<(char)32, global_reg> >) ()
#5  0x00000000004012e7 in extract<(char)9, 4,
IP_String<strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >*> ()
#6  0x0000000000401228 in extract<(char)9, 5, TimeT<IP_String*,
strings::VString<(unsigned char)254>*, IP_String, VRecord<(char)32, global_reg>
>*> ()
#7  0x000000000040115c in extract<(char)9, 6, timestamp_seconds_buffer<TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, IP_String, VRecord<(char)32,
global_reg> >*> ()
#8  0x0000000000401083 in extract<(char)9, 7,
AccountEmail<timestamp_seconds_buffer*, TimeT*, IP_String*,
strings::VString<(unsigned char)254>*, IP_String, VRecord<(char)32, global_reg>
>*> ()
#9  0x0000000000400fa7 in bool extract<(char)9, 8, int*, AccountEmail*,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 8, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#10 0x0000000000400eb8 in bool extract<(char)9, 9, int*, int*, AccountEmail*,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 9, int*, int*, AccountEmail*, timestamp_seconds_buffer*,
TimeT*, IP_String*, strings::VString<(unsigned char)254>*, TimeT*,
VRecord<(char)32, global_reg> >) ()
#11 0x0000000000400da8 in bool extract<(char)9, 10, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >(strings::XString, Record<(char)9, 10, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#12 0x0000000000400c86 in
_Z7extractILc9ELi11EP29timestamp_milliseconds_bufferIPN7strings7VStringILh1EEEPiS6_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS3_ILh254EEESC_7VRecordILc32E10global_regEEEbNS2_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#13 0x0000000000400b52 in
_Z7extractILc9ELi12EP12AccountCryptIP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEEPiS8_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS5_ILh254EEESE_7VRecordILc32E10global_regEEEbNS4_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#14 0x0000000000400a0d in
_Z7extractILc9ELi13EP11AccountNameIP12AccountCryptP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEEPiSA_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS7_ILh254EEESG_7VRecordILc32E10global_regEEEbNS6_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#15 0x00000000004008ac in bool extract<(char)9, 14, int*, AccountName*,
AccountCrypt*, timestamp_milliseconds_buffer*, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >(strings::XString, Record<(char)9, 14, int*, AccountName*,
AccountCrypt*, timestamp_milliseconds_buffer*, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#16 0x00000000004006fc in extract(strings::XString, AuthData*) ()
#17 0x000000000040073d in mmo_auth_init(strings::XString) ()
#18 0x0000000000400752 in main ()

backtrace for gcc 4.6, no demangling:
(gdb) bt
#0  _IO_puts (str=0x4015ec "hello") at ioputs.c:34
#1  0x00000000004014ed in
_Z7extractILc32E10global_regEbN7strings7XStringE7VRecordIXT_ET0_E ()
#2  0x0000000000401493 in
_Z7extractILc9ELi1E7VRecordILc32E10global_regEIEEbN7strings7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#3  0x0000000000401422 in
_Z7extractILc9ELi2EP5TimeTI7VRecordILc32E10global_regEEEbN7strings7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#4  0x0000000000401391 in
_Z7extractILc9ELi3EPN7strings7VStringILh254EEEIP5TimeT7VRecordILc32E10global_regEEEbNS0_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#5  0x00000000004012e7 in
_Z7extractILc9ELi4EP9IP_StringIPN7strings7VStringILh254EEEP5TimeT7VRecordILc32E10global_regEEEbNS2_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#6  0x0000000000401228 in
_Z7extractILc9ELi5EP5TimeTIP9IP_StringPN7strings7VStringILh254EEES1_7VRecordILc32E10global_regEEEbNS4_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#7  0x000000000040115c in
_Z7extractILc9ELi6EP24timestamp_seconds_bufferIP5TimeTP9IP_StringPN7strings7VStringILh254EEES3_7VRecordILc32E10global_regEEEbNS6_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#8  0x0000000000401083 in
_Z7extractILc9ELi7EP12AccountEmailIP24timestamp_seconds_bufferP5TimeTP9IP_StringPN7strings7VStringILh254EEES5_7VRecordILc32E10global_regEEEbNS8_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#9  0x0000000000400fa7 in
_Z7extractILc9ELi8EPiIP12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPN7strings7VStringILh254EEES6_7VRecordILc32E10global_regEEEbNS9_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#10 0x0000000000400eb8 in
_Z7extractILc9ELi9EPiIS0_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPN7strings7VStringILh254EEES6_7VRecordILc32E10global_regEEEbNS9_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#11 0x0000000000400da8 in
_Z7extractILc9ELi10EPN7strings7VStringILh1EEEIPiS4_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS1_ILh254EEESA_7VRecordILc32E10global_regEEEbNS0_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#12 0x0000000000400c86 in
_Z7extractILc9ELi11EP29timestamp_milliseconds_bufferIPN7strings7VStringILh1EEEPiS6_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS3_ILh254EEESC_7VRecordILc32E10global_regEEEbNS2_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#13 0x0000000000400b52 in
_Z7extractILc9ELi12EP12AccountCryptIP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEEPiS8_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS5_ILh254EEESE_7VRecordILc32E10global_regEEEbNS4_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#14 0x0000000000400a0d in
_Z7extractILc9ELi13EP11AccountNameIP12AccountCryptP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEEPiSA_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS7_ILh254EEESG_7VRecordILc32E10global_regEEEbNS6_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#15 0x00000000004008ac in
_Z7extractILc9ELi14EPiIP11AccountNameP12AccountCryptP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEES0_S0_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS8_ILh254EEESG_7VRecordILc32E10global_regEEEbNS7_7XStringE6RecordIXT_EXT0_EIT1_DpT2_EE
()
#16 0x00000000004006fc in _ZL7extractN7strings7XStringEP8AuthData ()
#17 0x000000000040073d in _Z13mmo_auth_initN7strings7XStringE ()
#18 0x0000000000400752 in main ()

backtrace for clang, with demangling:
#0  _IO_puts (str=0x40247c "hello") at ioputs.c:34
#1  0x000000000040239c in bool extract<(char)32, global_reg>(strings::XString,
VRecord<(char)32, global_reg>) ()
#2  0x000000000040234d in bool extract<(char)9, 1, VRecord<(char)32,
global_reg>>(strings::XString, Record<(char)9, 1, VRecord<(char)32,
global_reg>>) ()
#3  0x0000000000402317 in bool extract<(char)9, 2, TimeT*, VRecord<(char)32,
global_reg> >(strings::XString, Record<(char)9, 2, TimeT*, VRecord<(char)32,
global_reg> >) ()
#4  0x0000000000402298 in bool extract<(char)9, 3, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 3, strings::VString<(unsigned char)254>*, TimeT*,
VRecord<(char)32, global_reg> >) ()
#5  0x00000000004021f9 in bool extract<(char)9, 4, IP_String*,
strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32, global_reg>
>(strings::XString, Record<(char)9, 4, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >) ()
#6  0x0000000000402140 in bool extract<(char)9, 5, TimeT*, IP_String*,
strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32, global_reg>
>(strings::XString, Record<(char)9, 5, TimeT*, IP_String*,
strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32, global_reg> >)
()
#7  0x0000000000402090 in bool extract<(char)9, 6, timestamp_seconds_buffer*,
TimeT*, IP_String*, strings::VString<(unsigned char)254>*, TimeT*,
VRecord<(char)32, global_reg> >(strings::XString, Record<(char)9, 6,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >) ()
#8  0x0000000000401fe8 in bool extract<(char)9, 7, AccountEmail*,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 7, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#9  0x0000000000401f58 in bool extract<(char)9, 8, int*, AccountEmail*,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 8, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#10 0x0000000000401ec0 in bool extract<(char)9, 9, int*, int*, AccountEmail*,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >(strings::XString,
Record<(char)9, 9, int*, int*, AccountEmail*, timestamp_seconds_buffer*,
TimeT*, IP_String*, strings::VString<(unsigned char)254>*, TimeT*,
VRecord<(char)32, global_reg> >) ()
#11 0x0000000000401e00 in bool extract<(char)9, 10, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >(strings::XString, Record<(char)9, 10, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#12 0x0000000000401d48 in bool extract<(char)9, 11,
timestamp_milliseconds_buffer*, strings::VString<(unsigned char)1>*, int*,
int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*, IP_String*,
strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32, global_reg>
>(strings::XString, Record<(char)9, 11, timestamp_milliseconds_buffer*,
strings::VString<(unsigned char)1>*, int*, int*, AccountEmail*,
timestamp_seconds_buffer*, TimeT*, IP_String*, strings::VString<(unsigned
char)254>*, TimeT*, VRecord<(char)32, global_reg> >) ()
#13 0x0000000000401c7b in bool extract<(char)9, 12, AccountCrypt*,
timestamp_milliseconds_buffer*, strings::VString<(unsigned char)1>*, int*,
int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*, IP_String*,
strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32, global_reg>
>(strings::XString, Record<(char)9, 12, AccountCrypt*,
timestamp_milliseconds_buffer*, strings::VString<(unsigned char)1>*, int*,
int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*, IP_String*,
strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32, global_reg> >)
()
#14 0x0000000000401ba9 in bool extract<(char)9, 13, AccountName*,
AccountCrypt*, timestamp_milliseconds_buffer*, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >(strings::XString, Record<(char)9, 13, AccountName*,
AccountCrypt*, timestamp_milliseconds_buffer*, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#15 0x000000000040094f in bool extract<(char)9, 14, int*, AccountName*,
AccountCrypt*, timestamp_milliseconds_buffer*, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >(strings::XString, Record<(char)9, 14, int*, AccountName*,
AccountCrypt*, timestamp_milliseconds_buffer*, strings::VString<(unsigned
char)1>*, int*, int*, AccountEmail*, timestamp_seconds_buffer*, TimeT*,
IP_String*, strings::VString<(unsigned char)254>*, TimeT*, VRecord<(char)32,
global_reg> >) ()
#16 0x0000000000400879 in extract(strings::XString, AuthData*) ()
#17 0x0000000000400685 in mmo_auth_init(strings::XString) ()
#18 0x000000000040089d in main ()

backtrace for clang, no demangling:
(gdb) bt
#0  _IO_puts (str=0x40247c "hello") at ioputs.c:34
#1  0x000000000040239c in
_Z7extractILc32E10global_regEbN7strings7XStringE7VRecordIXT_ET0_E ()
#2  0x000000000040234d in
_Z7extractILc9ELi1E7VRecordILc32E10global_regEJEEbN7strings7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#3  0x0000000000402317 in
_Z7extractILc9ELi2EP5TimeTJ7VRecordILc32E10global_regEEEbN7strings7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#4  0x0000000000402298 in
_Z7extractILc9ELi3EPN7strings7VStringILh254EEEJP5TimeT7VRecordILc32E10global_regEEEbNS0_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#5  0x00000000004021f9 in
_Z7extractILc9ELi4EP9IP_StringJPN7strings7VStringILh254EEEP5TimeT7VRecordILc32E10global_regEEEbNS2_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#6  0x0000000000402140 in
_Z7extractILc9ELi5EP5TimeTJP9IP_StringPN7strings7VStringILh254EEES1_7VRecordILc32E10global_regEEEbNS4_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#7  0x0000000000402090 in
_Z7extractILc9ELi6EP24timestamp_seconds_bufferJP5TimeTP9IP_StringPN7strings7VStringILh254EEES3_7VRecordILc32E10global_regEEEbNS6_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#8  0x0000000000401fe8 in
_Z7extractILc9ELi7EP12AccountEmailJP24timestamp_seconds_bufferP5TimeTP9IP_StringPN7strings7VStringILh254EEES5_7VRecordILc32E10global_regEEEbNS8_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#9  0x0000000000401f58 in
_Z7extractILc9ELi8EPiJP12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPN7strings7VStringILh254EEES6_7VRecordILc32E10global_regEEEbNS9_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#10 0x0000000000401ec0 in
_Z7extractILc9ELi9EPiJS0_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPN7strings7VStringILh254EEES6_7VRecordILc32E10global_regEEEbNS9_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#11 0x0000000000401e00 in
_Z7extractILc9ELi10EPN7strings7VStringILh1EEEJPiS4_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS1_ILh254EEESA_7VRecordILc32E10global_regEEEbNS0_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#12 0x0000000000401d48 in
_Z7extractILc9ELi11EP29timestamp_milliseconds_bufferJPN7strings7VStringILh1EEEPiS6_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS3_ILh254EEESC_7VRecordILc32E10global_regEEEbNS2_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#13 0x0000000000401c7b in
_Z7extractILc9ELi12EP12AccountCryptJP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEEPiS8_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS5_ILh254EEESE_7VRecordILc32E10global_regEEEbNS4_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#14 0x0000000000401ba9 in
_Z7extractILc9ELi13EP11AccountNameJP12AccountCryptP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEEPiSA_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS7_ILh254EEESG_7VRecordILc32E10global_regEEEbNS6_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#15 0x000000000040094f in
_Z7extractILc9ELi14EPiJP11AccountNameP12AccountCryptP29timestamp_milliseconds_bufferPN7strings7VStringILh1EEES0_S0_P12AccountEmailP24timestamp_seconds_bufferP5TimeTP9IP_StringPNS8_ILh254EEESG_7VRecordILc32E10global_regEEEbNS7_7XStringE6RecordIXT_EXT0_EJT1_DpT2_EE
()
#16 0x0000000000400879 in _ZL7extractN7strings7XStringEP8AuthData ()
#17 0x0000000000400685 in _Z13mmo_auth_initN7strings7XStringE ()
#18 0x000000000040089d in main ()

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/15801] some C++11 symbols can't be demangled
  2013-07-30  1:06 [Bug c++/15801] New: some C++11 symbols can't be demangled b.r.longbons at gmail dot com
                   ` (2 preceding siblings ...)
  2013-07-30  5:57 ` b.r.longbons at gmail dot com
@ 2013-08-01  5:53 ` b.r.longbons at gmail dot com
  2022-12-23 19:20 ` tromey at sourceware dot org
  4 siblings, 0 replies; 6+ messages in thread
From: b.r.longbons at gmail dot com @ 2013-08-01  5:53 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=15801

--- Comment #4 from Ben Longbons <b.r.longbons at gmail dot com> ---
For the interest of anyone else needing to work around this:

I found the original gcc bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51322

which fortunately gives a way to stop the wrong symbols from being emitted for
compatibility (-fabi-version=6).

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c++/15801] some C++11 symbols can't be demangled
  2013-07-30  1:06 [Bug c++/15801] New: some C++11 symbols can't be demangled b.r.longbons at gmail dot com
                   ` (3 preceding siblings ...)
  2013-08-01  5:53 ` b.r.longbons at gmail dot com
@ 2022-12-23 19:20 ` tromey at sourceware dot org
  4 siblings, 0 replies; 6+ messages in thread
From: tromey at sourceware dot org @ 2022-12-23 19:20 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=15801

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #6 from Tom Tromey <tromey at sourceware dot org> ---
Re-reading this, I think it's fine to close it.
The demangler is canonically maintained in gcc anyhow.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-12-23 19:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-30  1:06 [Bug c++/15801] New: some C++11 symbols can't be demangled b.r.longbons at gmail dot com
2013-07-30  1:46 ` [Bug c++/15801] " keiths at redhat dot com
2013-07-30  5:04 ` b.r.longbons at gmail dot com
2013-07-30  5:57 ` b.r.longbons at gmail dot com
2013-08-01  5:53 ` b.r.longbons at gmail dot com
2022-12-23 19:20 ` tromey at sourceware dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).