[Bug 62698] Crash when closing a project

Chris Thompson chris at hypocrite.org
Fri Aug 15 19:37:06 UTC 2003


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
     
http://bugs.kde.org/show_bug.cgi?id=62698     




------- Additional Comments From chris at hypocrite.org  2003-08-15 19:36 -------
Well, I modified the plugincontroller.cpp file, specifically the PluginController::removePart 
method.  This now looks like: 
 
void PluginController::removePart(KXMLGUIClient *part) 
{ 
  kdDebug(62698) << "PluginController::removePart(KXMLGUIClient *part)" << endl; 
  kdDebug(62698) << TopLevel::getInstance() << endl; 
  kdDebug(62698) << TopLevel::getInstance()->main() << endl; 
  kdDebug(62698) << TopLevel::getInstance()->main()->guiFactory() << endl; 
  kdDebug(62698) << part << " if ( ! part ) ? " << (! part) << endl; 
 
  try { 
    TopLevel::getInstance()->main()->guiFactory()->removeClient(part); 
  } catch (...) { 
    kdDebug(62698) << "Caught an exception" << endl; 
  } 
} 
 
(I didn't know what to put in for the number for kdDebug).  I still get the crash at the 
same location, the bit that actually removes the client.  I'm attaching another stack trace 
along with the output in gdb leading up to that point. 
 
It looks like my reverting to a previous build of KDevelop did _not_ show the error, it 
instead crashed in a different location due to changes in cppsupportpart.  I therefore 
cannot say exactly when this particular bug was introduced but it must have been fairly 
recently.  I also cannot say if Peter's confirmation is actually for the same bug, his stack 
trace looks different than mine. 
 
I'm totally lost looking at the KDevelop source code so I am not planning on 
investigating this problem further but if someone else wants to, I can run tests, etc. etc.  
I'll also note if a future retrieval from CVS fixes my problem. 
 
qeditor: CppSupportPart::activePartChanged() 
kdevelop (cpp support): CppCodeCompletion::slotActivePartChanged() 
kdevelop (cpp support): BackgroundParser::removeAllFiles() 
kdevelop (debugger): GDBController::slotStopDebugger() called 
kdevelop (debugger): Disassemble widget active: false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8a9ccd0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x86556e0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8b74c90 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8b74de0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8a39a48 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x87fe2c8 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x86442d0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x898dcf8 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x874a008 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8618f68 if ( ! part ) ? false 
kdevelop (cpp support): DistpartPart::~DistpartPart() 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x81806f8 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8b95478 if ( ! part ) ? false 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 16384 (LWP 17515)] 
0x08b0aecd in ?? () 
(gdb) bt 
#0  0x08b0aecd in ?? () 
#1  0x409a2aac in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#2  0x409a2cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#3  0x409a2a9d in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#4  0x409a2cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#5  0x409a2a9d in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#6  0x4099e737 in KXMLGUIFactory::removeClient(KXMLGUIClient*) () 
   from /usr/kde/3.1/lib/libkdeui.so.4 
#7  0x080a00dd in PluginController::removePart(KXMLGUIClient*) ( 
    this=0x81ee388, part=0x8b95478) at plugincontroller.cpp:290 
#8  0x0809c32e in ProjectManager::unloadLanguageSupport() (this=0x81eb568) 
    at projectmanager.cpp:466 
#9  0x0809b036 in ProjectManager::closeProject() (this=0x81eb568) 
    at projectmanager.cpp:277 
#10 0x0809d585 in ProjectManager::qt_invoke(int, QUObject*) (this=0x81eb568, 
    _id=4, _o=0xbfffea00) at projectmanager.moc:109 
#11 0x40ed2639 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/qt/3/lib/libqt-mt.so.3




More information about the KDevelop-devel mailing list