Bug 59604

Summary: Gideon crashes when loading large c++ project
Product: [Applications] kdevelop Reporter: Christian Prochnow <cproch>
Component: Language Support: CPP (old)Assignee: KDevelop Developers <kdevelop-devel>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Christian Prochnow 2003-06-10 17:00:55 UTC
Version:           3.0.0-CVS-HEAD (using KDE KDE 3.1)
Installed from:    Compiled From Sources
Compiler:          gcc version 3.2 20020903 
OS:          Linux

Hi,

gideon crashes when loading a large c++ project (eg. gideon itself). 
I tried to reproduce the bug and got two different behaviours.

1.: Running gideon without gdb lets gideon simply disappear  (without KCrash) when parsing the project files...
console says:  "Der Wecker klingelt." :) poor German translation - it means "SIGALARM received".

2.: Running gideon in gdb does not yield this error. But when my box is under high load it yields another error when parsing the project files:  SIGSEGV.

The backtrace for the SIGSEGV varies:

GNU gdb Red Hat Linux (5.2.1-4)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16386 (LWP 30883)]
0x41bf7078 in QMapPrivate<QString, QPair<QString, int> >::insert(QMapNodeBase*, QMapNodeBase*, QString const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
(gdb) bt
#0  0x41bf7078 in QMapPrivate<QString, QPair<QString, int> >::insert(QMapNodeBase*, QMapNodeBase*, QString const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
#1  0x41bf65f4 in QMapPrivate<QString, QPair<QString, int> >::insertSingle(QString const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
#2  0x41bf5756 in QMap<QString, QPair<QString, int> >::insert(QString const&, QPair<QString, int> const&, bool) ()
   from /usr/local/lib/libkdevcppparser.so.0
#3  0x41bf1fe0 in Driver::addDependence(QString const&, QPair<QString, int> const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
#4  0x41bfd0cf in Lexer::processInclude() () from /usr/local/lib/libkdevcppparser.so.0
#5  0x41bfba7f in Lexer::handleDirective(QString const&) () from /usr/local/lib/libkdevcppparser.so.0
#6  0x41bf8bdd in Lexer::nextToken(Token&, bool) () from /usr/local/lib/libkdevcppparser.so.0
#7  0x41bfb019 in Lexer::tokenize() () from /usr/local/lib/libkdevcppparser.so.0
#8  0x41bf84c8 in Lexer::setSource(QString const&) () from /usr/local/lib/libkdevcppparser.so.0
#9  0x41bf2778 in Driver::parseFile(QString const&, bool, bool) () from /usr/local/lib/libkdevcppparser.so.0
#10 0x41adb7ef in BackgroundParser::parseFile(QString const&) () from /usr/local/lib/kde3/libkdevcppsupport.so
#11 0x41adbc55 in BackgroundParser::run() () from /usr/local/lib/kde3/libkdevcppsupport.so
#12 0x40bf29e6 in start_thread () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x410e5881 in pthread_start_thread () from /lib/i686/libpthread.so.0
#14 0x410e5985 in pthread_start_thread_event () from /lib/i686/libpthread.so.0
-----------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 65541 (LWP 30938)]
0x41bf6cfb in QMapPrivate<QString, Macro>::find(QString const&) const () from /usr/local/lib/libkdevcppparser.so.0
(gdb) bt
#0  0x41bf6cfb in QMapPrivate<QString, Macro>::find(QString const&) const () from /usr/local/lib/libkdevcppparser.so.0
#1  0x41bf9766 in Lexer::nextToken(Token&, bool) () from /usr/local/lib/libkdevcppparser.so.0
#2  0x41bfb019 in Lexer::tokenize() () from /usr/local/lib/libkdevcppparser.so.0
#3  0x41bf84c8 in Lexer::setSource(QString const&) () from /usr/local/lib/libkdevcppparser.so.0
#4  0x41bf2778 in Driver::parseFile(QString const&, bool, bool) () from /usr/local/lib/libkdevcppparser.so.0
#5  0x41adb7ef in BackgroundParser::parseFile(QString const&) () from /usr/local/lib/kde3/libkdevcppsupport.so
#6  0x41adbc55 in BackgroundParser::run() () from /usr/local/lib/kde3/libkdevcppsupport.so
#7  0x40bf29e6 in start_thread () from /usr/lib/qt3/lib/libqt-mt.so.3
#8  0x410e5881 in pthread_start_thread () from /lib/i686/libpthread.so.0
#9  0x410e5985 in pthread_start_thread_event () from /lib/i686/libpthread.so.0
--------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 49156 (LWP 31105)]
0x40e3f78d in ucstrcmp(QString const&, QString const&) () from /usr/lib/qt3/lib/libqt-mt.so.3
(gdb) bt
#0  0x40e3f78d in ucstrcmp(QString const&, QString const&) () from /usr/lib/qt3/lib/libqt-mt.so.3
#1  0x40e47028 in operator<(QString const&, QString const&) () from /usr/lib/qt3/lib/libqt-mt.so.3
#2  0x41bf70df in QMapPrivate<QString, QPair<QString, int> >::insert(QMapNodeBase*, QMapNodeBase*, QString const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
#3  0x41bf65f4 in QMapPrivate<QString, QPair<QString, int> >::insertSingle(QString const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
#4  0x41bf5756 in QMap<QString, QPair<QString, int> >::insert(QString const&, QPair<QString, int> const&, bool) ()
   from /usr/local/lib/libkdevcppparser.so.0
#5  0x41bf1fe0 in Driver::addDependence(QString const&, QPair<QString, int> const&) ()
   from /usr/local/lib/libkdevcppparser.so.0
#6  0x41bfd0cf in Lexer::processInclude() () from /usr/local/lib/libkdevcppparser.so.0
#7  0x41bfba7f in Lexer::handleDirective(QString const&) () from /usr/local/lib/libkdevcppparser.so.0
#8  0x41bf8bdd in Lexer::nextToken(Token&, bool) () from /usr/local/lib/libkdevcppparser.so.0
#9  0x41bfb019 in Lexer::tokenize() () from /usr/local/lib/libkdevcppparser.so.0
#10 0x41bf84c8 in Lexer::setSource(QString const&) () from /usr/local/lib/libkdevcppparser.so.0
#11 0x41bf2778 in Driver::parseFile(QString const&, bool, bool) () from /usr/local/lib/libkdevcppparser.so.0
#12 0x41adb7ef in BackgroundParser::parseFile(QString const&) () from /usr/local/lib/kde3/libkdevcppsupport.so
#13 0x41adbc55 in BackgroundParser::run() () from /usr/local/lib/kde3/libkdevcppsupport.so
#14 0x40bf29e6 in start_thread () from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0x410e5881 in pthread_start_thread () from /lib/i686/libpthread.so.0
#16 0x410e5985 in pthread_start_thread_event () from /lib/i686/libpthread.so.0


Regards,
Christian Prochnow
Comment 1 Christian Prochnow 2003-06-11 15:07:04 UTC
Roberto, here are the version numbers: 
 
kernel: 2.4.20-18.8smp 
gcc: 3.2 20020903 (Red Hat Linux 8.0 3.2-7) 
gdb: GNU gdb Red Hat Linux (5.2.1-4) 
Qt: 3.1.1 
KDE: 3.1-9.3.8.0 
Kdevelop: CVS-HEAD 
 
The KDE/QT were not provided by redhat - but there is a 3rd party project: 
kde-redhat.sourceforge.net 
 
Hope this helps. 
 
Christian 
 
Comment 2 Roberto Raggi 2003-06-22 14:42:06 UTC
*** Bug has been marked as fixed ***.