Boost logo

Boost Users :

Subject: [Boost-users] gdb crash when loading lib with (big) Spirit grammar
From: Christoph Duelli (duelli_at_[hidden])
Date: 2009-09-16 09:03:32


I have a quite big Spirit (1.38) grammar inside a lib.
(Running OpenSuSE 11.1 Linux, gcc 4.3.2, gdb 6.8.50; both 32 bit and 64
bit.)

When trying to debug a programm linked against this lib, gdb crashes - when
trying to read the lib's symbol table.

(gdb) at 19281
Attaching to process 19281
Reading symbols from ....i_mepl_debug...done.
Reading symbols from ....libMEPL_debug.so.6... Segmentation fault (core
dumped)

(Note that this is not my program crashing but gdb. And no, the program is
not buggy, has not corrupted the stack or anything like that ;-)

Debugging does work on older openSuSE (or SLES) releases, e.g. on openSuSE
10.3., SLES 10, SLES9.
I have build and tried the latest gdb release, but it shows the same
behaviour as the one part of the release.

A stack trace of the gdb core showed that the crash seems to have occured in
cplus_demangle_v3.

I have searched google and found some postings that indicate the issue might
stem from too long symbols being generated for Spirit (or Xpressive)
constructs. (A quick glance on nm output shows, there are some symbols of
some 1000 characters in size. Might be even longer ones.)

Has anyone else stumbled upon this and maybe found out what the culprit is?
A bug in gcc? gdb? name (de)mangling?
Any ideas?

Best regards
Christoph


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net