Bug 52917 - Gideon crashes when saving h-files
Summary: Gideon crashes when saving h-files
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KDevelop Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-01-12 20:06 UTC by Dominik Kuhlen
Modified: 2003-02-27 15:04 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dominik Kuhlen 2003-01-12 20:06:28 UTC
Version:           3.0alpha3 (using KDE KDE 3.0.5)
Installed from:    Compiled From Sources
Compiler:          gcc 2.95.3 
OS:          Linux

If file was opened via "Classes" or "File Groups" the filename in the 
gideon title has two "/" instead of one (I'm not sure whether this is a problem or not). Trying to save a modified header file results in this: 

[New Thread 1024 (LWP 20158)]
[New Thread 2049 (LWP 20161)]
0x415b79f9 in __wait4 () from /lib/libc.so.6
#0  0x415b79f9 in __wait4 () from /lib/libc.so.6
#1  0x4162f0e4 in __DTOR_END__ () from /lib/libc.so.6
#2  0x41467d76 in waitpid (pid=20178, stat_loc=0x0, options=0)
    at wrapsyscall.c:173
#3  0x4092ca64 in KCrash::defaultCrashHandler ()
   from /opt/kde-3.0.5a/lib/libkdecore.so.4
#4  0x41465c30 in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 135392480, esi = 138503144, ebp = 3221220540, esp = 3221220540, ebx = 1077474876, edx = 3221220624, ecx = 3221220628, eax = 0, trapno = 14, err = 6, eip = 1090319417, cs = 35, __csh = 0, eflags = 66054, esp_at_signal = 3221220540, ss = 43, __ssh = 0, fpstate = 0xbfffea40, oldmask = 2147483648, cr2 = 0})
    at signals.c:97
#5  <signal handler called>
#6  0x40fcf439 in QString::QString () from /opt/qt/lib/libqt-mt.so.3
#7  0x4034b49f in ClassStore::removeWithReferences ()
   from /opt/kde-3.0.5a/lib/libkdevelop.so.1
#8  0x41b329eb in CppSupportPart::maybeParse ()
   from /opt/kde/lib/kde3/libkdevcppsupport.so
#9  0x41b2c8c9 in CppSupportPart::savedFile ()
   from /opt/kde/lib/kde3/libkdevcppsupport.so
#10 0x41b33fcd in CppSupportPart::qt_invoke ()
   from /opt/kde/lib/kde3/libkdevcppsupport.so
#11 0x40cf42f8 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#12 0x40cf4659 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#13 0x08086e2a in KDevPartController::savedFile ()
#14 0x0806c4dc in PartController::slotUploadFinished ()
#15 0x0806db4d in PartController::qt_invoke ()
#16 0x40cf42f8 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#17 0x40cf413e in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#18 0x41e1607b in KateDocument::fileNameChanged ()
   from /opt/kde-3.0.5a/lib/libkatepart.so
#19 0x41e1db8f in KateDocument::saveFile ()
   from /opt/kde-3.0.5a/lib/libkatepart.so
#20 0x403c22d1 in KParts::ReadWritePart::save ()
   from /opt/kde-3.0.5a/lib/libkparts.so.2
#21 0x403c264c in KParts::ReadWritePart::saveAs ()
   from /opt/kde-3.0.5a/lib/libkparts.so.2
#22 0x41e3ee7f in KateView::save () from /opt/kde-3.0.5a/lib/libkatepart.so
#23 0x41e36ccf in KateView::qt_invoke ()
   from /opt/kde-3.0.5a/lib/libkatepart.so
#24 0x40cf4254 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#25 0x40cf413e in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#26 0x40703cc8 in KAction::activated () from /opt/kde-3.0.5a/lib/libkdeui.so.4
#27 0x406f97ce in KAction::slotActivated ()
   from /opt/kde-3.0.5a/lib/libkdeui.so.4
#28 0x40703ecb in KAction::qt_invoke () from /opt/kde-3.0.5a/lib/libkdeui.so.4
#29 0x40cf42f8 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#30 0x40cf413e in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#31 0x4104777f in QButton::clicked () from /opt/qt/lib/libqt-mt.so.3
#32 0x40d88180 in QButton::mouseReleaseEvent () from /opt/qt/lib/libqt-mt.so.3
#33 0x40d2fe87 in QWidget::event () from /opt/qt/lib/libqt-mt.so.3
#34 0x40c88d7f in QApplication::internalNotify ()
   from /opt/qt/lib/libqt-mt.so.3
#35 0x40c88739 in QApplication::notify () from /opt/qt/lib/libqt-mt.so.3
#36 0x408b7315 in KApplication::notify ()
   from /opt/kde-3.0.5a/lib/libkdecore.so.4
#37 0x40c2a7bf in QETWidget::translateMouseEvent ()
   from /opt/qt/lib/libqt-mt.so.3
#38 0x40c28547 in QApplication::x11ProcessEvent ()
   from /opt/qt/lib/libqt-mt.so.3
#39 0x40c3dae8 in QEventLoop::processEvents () from /opt/qt/lib/libqt-mt.so.3
#40 0x40c9fd2e in QEventLoop::enterLoop () from /opt/qt/lib/libqt-mt.so.3
#41 0x40c9fc7a in QEventLoop::exec () from /opt/qt/lib/libqt-mt.so.3
#42 0x40c88fb1 in QApplication::exec () from /opt/qt/lib/libqt-mt.so.3
#43 0x08064429 in main ()
#44 0x4152e91d in __libc_start_main (main=0x8063fd4 <main>, argc=7, 
    ubp_av=0xbffffbf4, init=0x805fb80 <_init>, fini=0x808ab9c <_fini>, 
    rtld_fini=0x4000b9bc <_dl_fini>, stack_end=0xbffffbec)
    at ../sysdeps/generic/libc-start.c:129


Opening via menu "File/Open" does not have these problems. (double "/" and crash)
Comment 1 Harald Fernengel 2003-01-12 20:21:43 UTC
Can you please configure (and rebuild/reinstall) KDevelop with "--enable-debug" 
and send a new backtrace? 
Comment 2 Dominik Kuhlen 2003-01-12 20:37:34 UTC
Sorry, hope this shows more information 
 
[New Thread 1024 (LWP 29404)] 
[New Thread 2049 (LWP 29406)] 
0x415c59f9 in __wait4 () from /lib/libc.so.6 
#0  0x415c59f9 in __wait4 () from /lib/libc.so.6 
#1  0x4163d0e4 in __DTOR_END__ () from /lib/libc.so.6 
#2  0x41475d76 in waitpid (pid=29409, stat_loc=0x0, options=0) 
    at wrapsyscall.c:173 
#3  0x4093aa64 in KCrash::defaultCrashHandler () 
   from /opt/kde-3.0.5a/lib/libkdecore.so.4 
#4  0x41473c30 in pthread_sighandler (signo=11, ctx= 
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh 
= 0, edi = 16, esi = 3221220496, ebp = 3221220364, esp = 3221220364, ebx = 
1077530780, edx = 3221220496, ecx = 138414208, eax = 80, trapno = 14, err = 4, 
eip = 1090376754, cs = 35, __csh = 0, eflags = 66179, esp_at_signal = 
3221220364, ss = 43, __ssh = 0, fpstate = 0xbfffe990, oldmask = 2147483648, cr2 
= 80}) 
    at signals.c:97 
#5  <signal handler called> 
#6  0x40fdd432 in QString::QString () from /opt/qt/lib/libqt-mt.so.3 
#7  0x4037b5f3 in ParsedItem::declaredInFile (this=0x10) at parseditem.h:200 
#8  0x40365afe in ClassStore::removeWithReferences (this=0x812b4e8,  
    fileName=@0xbfffed5c) at classstore.cpp:488 
#9  0x41ba8659 in CppSupportPart::maybeParse (this=0x82ad788, fileName= 
      {static null = {static null = <same as static member of an already seen 
type>, d = 0x80ace60, static shared_null = 0x80ace60}, d = 0xbfffed5c, static 
shared_null = 0x80ace60}, store=0x812b4e8, parser=0x81e8a38) 
    at cppsupportpart.cpp:1027 
#10 0x41ba4329 in CppSupportPart::savedFile (this=0x82ad788,  
    fileName=@0x83f4510) at cppsupportpart.cpp:482 
#11 0x41ba9b0f in CppSupportPart::qt_invoke (this=0x82ad788, _id=5,  
    _o=0xbfffee24) at cppsupportpart.moc:153 
#12 0x40d022f8 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#13 0x40d02659 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#14 0x08094c42 in KDevPartController::savedFile (this=0x8157738,  
    t0=@0xbfffeedc) at kdevpartcontroller.moc:90 
#15 0x08073607 in PartController::slotUploadFinished (this=0x8157738) 
    at partcontroller.cpp:290 
#16 0x080751d9 in PartController::qt_invoke (this=0x8157738, _id=15,  
    _o=0xbfffefa8) at partcontroller.moc:126 
#17 0x40d022f8 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#18 0x40d0213e in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#19 0x41ea907b in KateDocument::fileNameChanged () 
   from /opt/kde-3.0.5a/lib/libkatepart.so 
#20 0x41eb0b8f in KateDocument::saveFile () 
   from /opt/kde-3.0.5a/lib/libkatepart.so 
#21 0x403d02d1 in KParts::ReadWritePart::save () 
   from /opt/kde-3.0.5a/lib/libkparts.so.2 
#22 0x403d064c in KParts::ReadWritePart::saveAs () 
   from /opt/kde-3.0.5a/lib/libkparts.so.2 
#23 0x41ed1e7f in KateView::save () from /opt/kde-3.0.5a/lib/libkatepart.so 
#24 0x41ec9ccf in KateView::qt_invoke () 
   from /opt/kde-3.0.5a/lib/libkatepart.so 
#25 0x40d02254 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#26 0x40d0213e in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#27 0x40711cc8 in KAction::activated () from /opt/kde-3.0.5a/lib/libkdeui.so.4 
#28 0x407077ce in KAction::slotActivated () 
   from /opt/kde-3.0.5a/lib/libkdeui.so.4 
#29 0x40711ecb in KAction::qt_invoke () from /opt/kde-3.0.5a/lib/libkdeui.so.4 
#30 0x40d022f8 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#31 0x40d0213e in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 
#32 0x4105577f in QButton::clicked () from /opt/qt/lib/libqt-mt.so.3 
#33 0x40d96180 in QButton::mouseReleaseEvent () from /opt/qt/lib/libqt-mt.so.3 
#34 0x40d3de87 in QWidget::event () from /opt/qt/lib/libqt-mt.so.3 
#35 0x40c96d7f in QApplication::internalNotify () 
   from /opt/qt/lib/libqt-mt.so.3 
#36 0x40c96739 in QApplication::notify () from /opt/qt/lib/libqt-mt.so.3 
#37 0x408c5315 in KApplication::notify () 
   from /opt/kde-3.0.5a/lib/libkdecore.so.4 
#38 0x40c387bf in QETWidget::translateMouseEvent () 
   from /opt/qt/lib/libqt-mt.so.3 
#39 0x40c36547 in QApplication::x11ProcessEvent () 
   from /opt/qt/lib/libqt-mt.so.3 
#40 0x40c4bae8 in QEventLoop::processEvents () from /opt/qt/lib/libqt-mt.so.3 
#41 0x40cadd2e in QEventLoop::enterLoop () from /opt/qt/lib/libqt-mt.so.3 
#42 0x40cadc7a in QEventLoop::exec () from /opt/qt/lib/libqt-mt.so.3 
#43 0x40c96fb1 in QApplication::exec () from /opt/qt/lib/libqt-mt.so.3 
#44 0x080686c4 in main (argc=1, argv=0xbffffba4) at main.cpp:79 
#45 0x4153c91d in __libc_start_main (main=0x8068170 <main>, argc=1,  
    ubp_av=0xbffffba4, init=0x806357c <_init>, fini=0x80995dc <_fini>,  
    rtld_fini=0x4000b9bc <_dl_fini>, stack_end=0xbffffb9c) 
    at ../sysdeps/generic/libc-start.c:129 
Comment 3 Dominik Kuhlen 2003-01-13 15:26:15 UTC
There are two possible "crashpoints": the one above (in qstring) and this one: 
I compiled QT with debug support and started gideon with gdb 
heres the interesting output: 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 1024 (LWP 26492)] 
0x4036a083 in QMapIterator<QString, ParsedClass *>::inc (this=0xbfffe9c4) at 
/opt/qt/include/qmap.h:171 
171             while ( tmp->left ) 
(gdb) display tmp 
1: tmp = (QMapNodeBase *) 0x10                
(gdb) up 
#1  0x4036bfa3 in QMapIterator<QString, ParsedClass *>::operator++ 
(this=0xbfffe9c4) 
    at /opt/qt/include/qmap.h:143 
143             inc(); 
(gdb) up 
#2  0x4036632e in ClassStore::removeWithReferences (this=0x812f160, 
fileName=@0xbfffea8c) at classstore.cpp:490 
490         } 
(gdb) up 
#3  0x41e34639 in CppSupportPart::maybeParse (this=0x821ee20, 
fileName=Internal: global symbol `_7QString.null' found in tools/qstring.cpp 
psymtab but not in symtab. 
_7QString.null may be an inlined function, or may be a template function 
(if a template, try specifying an instantiation: _7QString.null<type>). 
) at cppsupportpart.cpp:1027 
1027        store->removeWithReferences( fileName ); 
(gdb) up 
#4  0x41e30309 in CppSupportPart::savedFile (this=0x821ee20, 
fileName=@0x85901a0) at cppsupportpart.cpp:482 
482             maybeParse( fileName, classStore( ), m_pParser ); 
(gdb) bt 
#0  0x4036a083 in QMapIterator<QString, ParsedClass *>::inc (this=0xbfffe9c4) 
at /opt/qt/include/qmap.h:171 
#1  0x4036bfa3 in QMapIterator<QString, ParsedClass *>::operator++ 
(this=0xbfffe9c4) 
    at /opt/qt/include/qmap.h:143 
#2  0x4036632e in ClassStore::removeWithReferences (this=0x812f160, 
fileName=@0xbfffea8c) at classstore.cpp:490 
#3  0x41e34639 in CppSupportPart::maybeParse (this=0x821ee20, fileName= 
      {static null = {static null = <same as static member of an already seen 
type>, d = 0x80adce8, static shared_null = 0x80adce8}, d = 0xbfffea8c, static 
shared_null = 0x80adce8}, store=0x812f160, parser=0x8220180) 
    at cppsupportpart.cpp:1027 
#4  0x41e30309 in CppSupportPart::savedFile (this=0x821ee20, 
fileName=@0x85901a0) at cppsupportpart.cpp:482 
#5  0x41e35aef in CppSupportPart::qt_invoke (this=0x821ee20, _id=5, 
_o=0xbfffeb60) at cppsupportpart.moc:153 
#6  0x40dc9daa in QObject::activate_signal (this=0x815c020, clist=0x81599c8, 
o=0xbfffeb60) 
    at kernel/qobject.cpp:2232 
#7  0x40dca3d9 in QObject::activate_signal (this=0x815c020, signal=5, param= 
      {static null = {static null = <same as static member of an already seen 
type>, d = 0x80adce8, static shared_null = 0x80adce8}, d = 0xbfffebb8, static 
shared_null = 0x80adce8}) at kernel/qobject.cpp:2279 
#8  0x08095a92 in KDevPartController::savedFile (this=0x815c020, 
t0=@0xbfffec1c) at kdevpartcontroller.moc:90 
#9  0x0807430f in PartController::slotUploadFinished (this=0x815c020) at 
partcontroller.cpp:320 
#10 0x08075e75 in PartController::qt_invoke (this=0x815c020, _id=15, 
_o=0xbfffed04) at partcontroller.moc:126 
#11 0x40dc9daa in QObject::activate_signal (this=0x849a010, clist=0x8542fa0, 
o=0xbfffed04) 
    at kernel/qobject.cpp:2232 
#12 0x40dc99ed in QObject::activate_signal (this=0x849a010, signal=20) at 
kernel/qobject.cpp:2186 
#13 0x4217507b in KateDocument::fileNameChanged () from 
/opt/kde-3.0.5a/lib/libkatepart.so 
#14 0x4217cb8f in KateDocument::saveFile () from 
/opt/kde-3.0.5a/lib/libkatepart.so 
#15 0x403d22d1 in KParts::ReadWritePart::save () from 
/opt/kde-3.0.5a/lib/libkparts.so.2 
#16 0x403d264c in KParts::ReadWritePart::saveAs () from 
/opt/kde-3.0.5a/lib/libkparts.so.2 
#17 0x4219de7f in KateView::save () from /opt/kde-3.0.5a/lib/libkatepart.so 
#18 0x42195ccf in KateView::qt_invoke () from 
/opt/kde-3.0.5a/lib/libkatepart.so 
#19 0x40dc9c5e in QObject::activate_signal (this=0x846c398, clist=0x8527a78, 
o=0xbffff044) 
    at kernel/qobject.cpp:2212 
#20 0x40dc99ed in QObject::activate_signal (this=0x846c398, signal=2) at 
kernel/qobject.cpp:2186 
#21 0x40713cc8 in KAction::activated () from /opt/kde-3.0.5a/lib/libkdeui.so.4 
#22 0x407097ce in KAction::slotActivated () from 
/opt/kde-3.0.5a/lib/libkdeui.so.4 
#23 0x40713ecb in KAction::qt_invoke () from /opt/kde-3.0.5a/lib/libkdeui.so.4 
#24 0x40dc9daa in QObject::activate_signal (this=0x8574df0, clist=0x85754a8, 
o=0xbffff174) 
    at kernel/qobject.cpp:2232 
#25 0x40dc99ed in QObject::activate_signal (this=0x8574df0, signal=4) at 
kernel/qobject.cpp:2186 
#26 0x411a2104 in QButton::clicked (this=0x8574df0) at 
.moc/debug-shared-mt/moc_qbutton.cpp:152 
#27 0x40e70750 in QButton::mouseReleaseEvent (this=0x8574df0, e=0xbffff5b4) at 
widgets/qbutton.cpp:808 
#28 0x40e0df52 in QWidget::event (this=0x8574df0, e=0xbffff5b4) at 
kernel/qwidget.cpp:4334 
#29 0x40d45c44 in QApplication::internalNotify (this=0xbffffa84, 
receiver=0x8574df0, e=0xbffff5b4) 
    at kernel/qapplication.cpp:2350 
#30 0x40d450e8 in QApplication::notify (this=0xbffffa84, receiver=0x8574df0, 
e=0xbffff5b4) 
    at kernel/qapplication.cpp:2159 
#31 0x408c7315 in KApplication::notify () from 
/opt/kde-3.0.5a/lib/libkdecore.so.4 
#32 0x4118b60b in QApplication::sendSpontaneousEvent (receiver=0x8574df0, 
event=0xbffff5b4) 
    at .moc/debug-shared-mt/../../kernel/qapplication.h:481 
#33 0x40cd1b69 in QETWidget::translateMouseEvent (this=0x8574df0, 
event=0xbffff91c) 
    at kernel/qapplication_x11.cpp:4217 
#34 0x40ccf170 in QApplication::x11ProcessEvent (this=0xbffffa84, 
event=0xbffff91c) 
    at kernel/qapplication_x11.cpp:3395 
#35 0x40cec178 in QEventLoop::processEvents (this=0x80e1f70, flags=4) at 
kernel/qeventloop_x11.cpp:169 
#36 0x40d633ec in QEventLoop::enterLoop (this=0x80e1f70) at 
kernel/qeventloop.cpp:191 
#37 0x40d63318 in QEventLoop::exec (this=0x80e1f70) at 
kernel/qeventloop.cpp:138 
#38 0x40d45ed8 in QApplication::exec (this=0xbffffa84) at 
kernel/qapplication.cpp:2471 
#39 0x08069024 in main (argc=1, argv=0xbffffbf4) at main.cpp:81 
#40 0x417d691d in __libc_start_main (main=0x8068ad0 <main>, argc=1, 
ubp_av=0xbffffbf4, init=0x8063dbc <_init>, 
    fini=0x809a42c <_fini>, rtld_fini=0x4000b9bc <_dl_fini>, 
stack_end=0xbffffbec) 
    at ../sysdeps/generic/libc-start.c:129 
 
 
This line is suspicious: 
1: tmp = (QMapNodeBase *) 0x10  
This should not happen, probably a "rampaging" pointer, that  
overwrites memory locations. 
 
 
Comment 4 Eray Ozkural 2003-02-27 15:04:00 UTC
I can't reproduce this bug on HEAD. Filename is correct, saves properly. Assuming fixed.