[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Konqueror segfaults
From:       Till Krech <till () snafu ! de>
Date:       2002-10-06 14:57:11
[Download RAW message or body]

On Sunday 06 October 2002 16:04, Shu-yu Guo wrote:
> Hello,
>
> Upon trying 3.1-beta2, konqueror crashes with a segfault upon exit. So, I
> decided to switch back to branch, unfortunately, this happens in branch as
> well. The backtrace in branch is different, and I have no idea what is
> causing this, though I'm leaning towards qt since that has changed since
> last time I used branch.
>
> FreeBSD 4.7-PRERELEASE,
> gcc version 2.95.4 20020320 [FreeBSD]
> KDE_3_0_BRANCH built from CVS
> qt-copy 3.1.0-b2
Same here.
The following code, enhanced with debug output to track down the problem,
is in kdebase/konqueror/konq_main.cc . Look at the comment!
-------------------------------------------------------------
  app.exec();

 //// Temporary code, waiting for Qt to do this properly

  // Delete all toplevel widgets that have WDestructiveClose, so that we don't have
  // any parts loaded when KLibLoader::cleanUp is called.
  QWidgetList *list = QApplication::topLevelWidgets();
  QWidgetListIt it(*list);
  QWidget * w;

  qDebug( "count: %i", list->count() );
  int i=0;
  while( (w=it.current()) != 0 ) {
     ++it;
     ++i;
     qDebug( "#%3i: Class: %s, Name: %s", i, w->className(), w->name() );
     if ( w->testWFlags( Qt::WDestructiveClose ) )
          delete w;
  } · ·

  KonqMainWindow::s_crashlog_file->remove();

  return 0;
---------------------------------------------------------------------------------------
I can see that all toplevel widgets which have the Qt::WDestructiveClose flag set
are deleted without error. It crashes afterwards and it happens exactly what the 
comment says, should be avoided: a crash in KLibloader::cleanUp()

regards, till

>
> gdb's backtrace for konqueror:
> #0  0x0 in ?? ()
> #1  0x28544685 in KXMLGUI::ActionList::unplug ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #2  0x28545b45 in KXMLGUI::ContainerNode::unplugClient ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #3  0x285459e3 in KXMLGUI::ContainerNode::unplugActions ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #4  0x285454f6 in KXMLGUI::ContainerNode::destruct ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #5  0x285456d7 in KXMLGUI::ContainerNode::destructChildren ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #6  0x285454e9 in KXMLGUI::ContainerNode::destruct ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #7  0x285456d7 in KXMLGUI::ContainerNode::destructChildren ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #8  0x285454e9 in KXMLGUI::ContainerNode::destruct ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #9  0x285435ca in KXMLGUIFactory::removeClient ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #10 0x28197268 in KParts::Plugin::~Plugin ()
>    from /usr/local/kde/lib/libkparts.so.2
> #11 0x297402b2 in DirFilterPlugin::~DirFilterPlugin ()
>    from /usr/local/kde/lib/kde3/libdirfilterplugin.so
> #12 0x2858f162 in QPtrList<QObject>::deleteItem ()
>    from /usr/local/kde/lib/libkdeui.so.4
> #13 0x28b9f3f0 in QGList::clear () from /usr/X11R6/qt/lib/libqt-mt.so.3
> #14 0x286e6fa2 in KLibrary::~KLibrary ()
>    from /usr/local/kde/lib/libkdecore.so.4
> #15 0x286e9899 in KLibLoader::close_pending ()
>    from /usr/local/kde/lib/libkdecore.so.4
> #16 0x286e8220 in KLibLoader::~KLibLoader ()
>    from /usr/local/kde/lib/libkdecore.so.4
> #17 0x286e7d44 in KLibLoader::cleanUp ()
>    from /usr/local/kde/lib/libkdecore.so.4
> #18 0x2867431d in KApplication::~KApplication ()
>    from /usr/local/kde/lib/libkdecore.so.4
> #19 0x280ac973 in KonquerorApplication::~KonquerorApplication (
>     this=0xbfbff8f8, __in_chrg=2) at konq_main.cc:53
> #20 0x280ab0b5 in main (argc=1, argv=0xbfbffa24) at konq_main.cc:143

-- 
Till Krech from Berlin, Germany is happy with
SuSE Linux 8.0 (i386) 2.4.18-64GB-SMP * KDE: 3.0.8 (KDE 3.1 beta2)
Qt: 3.1.0-b2 * gcc version 3.2


>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic