Version: 3.0.0b1 (using KDE 3.1.93 (CVS >= 20031111), yes) Compiler: gcc version 3.2 OS: Linux (i686) release 2.4.21-1up.1 To trigger a reproducible crash: 1. I open a KDevelop project and close *all* my document windows, so that no files are open and the main workspace is empty. I am using the IDEAL MDI mode. 2. I compile my project's docs, and I get errors in a docbook file. 3. I click on the error message. This makes the docbook file open in the main workspace. 4. I close this file, so that the workspace is again empty. This also makes the messages window disappear. 5. I reopen the messages window and click on the same error message (or, actually, any docbook error message). This should open a new document window with the same file. Instead, it crashes. Oddly enough, this crash does not happen when I introduce a compilation error into a C++ file in the very same project, and repeat the above steps. It does happen whenever I click on a docbook error message, close the window, and click on another docbook error message twice in a row. Backtrace follows. I am using latest qt-copy and kde* out of HEAD from a few days ago. [New Thread 1024 (LWP 32731)] [New Thread 2049 (LWP 32762)] [New Thread 1026 (LWP 32763)] 0x420b48b9 in wait4 () from /lib/i686/libc.so.6 #0 0x420b48b9 in wait4 () from /lib/i686/libc.so.6 #1 0x4213030c in __DTOR_END__ () from /lib/i686/libc.so.6 #2 0x419b0c33 in waitpid () from /lib/i686/libpthread.so.0 #3 0x40dab222 in KCrash::defaultCrashHandler(int) () from /scratch/klee/kde/lib/libkdecore.so.4 #4 0x419aef05 in pthread_sighandler () from /lib/i686/libpthread.so.0 #5 <signal handler called> #6 0x40bbcfed in KDockManager::removeFromAutoCreateList(KDockWidget*) () from /scratch/klee/kde/lib/libkdeui.so.4 #7 0x404c3978 in KMdiMainFrm::addToolWindow(QWidget*, KDockWidget::DockPosition, QWidget*, int, QString const&, QString const&) () from /scratch/klee/kde/lib/libkmdi.so.1 #8 0x0806522b in MainWindow::embedSelectView(QWidget*, QString const&, QString const&) () #9 0x41f4a5a1 in TextToolsPart::createWidget() () from /scratch/klee/kde/lib/kde3/libkdevtexttools.so #10 0x41f4aabd in TextToolsPart::activePartChanged(KParts::Part*) () from /scratch/klee/kde/lib/kde3/libkdevtexttools.so #11 0x41f4afc2 in TextToolsPart::qt_invoke(int, QUObject*) () from /scratch/klee/kde/lib/kde3/libkdevtexttools.so #12 0x41173918 in QObject::activate_signal(QConnectionList*, QUObject*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #13 0x4064ee85 in KParts::PartManager::activePartChanged(KParts::Part*) () from /scratch/klee/kde/lib/libkparts.so.2 #14 0x4064e196 in KParts::PartManager::setActivePart(KParts::Part*, QWidget*) () from /scratch/klee/kde/lib/libkparts.so.2 #15 0x4064da5c in KParts::PartManager::addPart(KParts::Part*, bool) () from /scratch/klee/kde/lib/libkparts.so.2 #16 0x0806f3fe in PartController::integratePart(KParts::Part*, KURL const&, bool) () #17 0x0806dce7 in PartController::editDocument(KURL const&, int, int) () #18 0x41d18eb1 in MakeWidget::searchItem(int) () from /scratch/klee/kde/lib/kde3/libkdevoutputviews.so #19 0x41d17acb in MakeWidget::contentsMouseReleaseEvent(QMouseEvent*) () from /scratch/klee/kde/lib/kde3/libkdevoutputviews.so #20 0x41281569 in QScrollView::viewportMouseReleaseEvent(QMouseEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #21 0x41280e97 in QScrollView::eventFilter(QObject*, QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #22 0x412c9b8f in QTextEdit::eventFilter(QObject*, QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #23 0x4117151e in QObject::activate_filters(QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #24 0x41171441 in QObject::event(QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #25 0x411a816c in QWidget::event(QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #26 0x41118ad5 in QApplication::internalNotify(QObject*, QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #27 0x4111826c in QApplication::notify(QObject*, QEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #28 0x40d0260e in KApplication::notify(QObject*, QEvent*) () from /scratch/klee/kde/lib/libkdecore.so.4 #29 0x410b1cc6 in QETWidget::translateMouseEvent(_XEvent const*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #30 0x410af4d4 in QApplication::x11ProcessEvent(_XEvent*) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #31 0x410c5af7 in QEventLoop::processEvents(unsigned) () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #32 0x4112bca6 in QEventLoop::enterLoop() () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #33 0x4112bb48 in QEventLoop::exec() () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #34 0x41118d21 in QApplication::exec() () from /scratch/klee/kde/qt/lib/libqt-mt.so.3 #35 0x0806271b in main () #36 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6
Argh, sorry, this should be "crash" severity.
Subject: kdevelop/parts/texttools CVS commit by dagerbo: Apparently embedding/removing/embedding isn't healthy with the new KMDI implementation, so let's avoid that. :) This slightly changes the behaviour of the TextToolsPart. It will no longer hide when the active window isn't a .html, .docbook or .tex file, just clear it's contents. It will have to do for now. CCMAIL: 68559-done@bugs.kde.org M +4 -3 texttoolspart.cpp 1.10 --- kdevelop/parts/texttools/texttoolspart.cpp #1.9:1.10 @@ -52,5 +52,5 @@ void TextToolsPart::createWidget() if (m_widget) { - mainWindow()->embedSelectView(m_widget, i18n("Text Structure"), i18n("Text structure")); +// mainWindow()->embedSelectView(m_widget, i18n("Text Structure"), i18n("Text structure")); return; } @@ -89,6 +89,7 @@ void TextToolsPart::activePartChanged(KP m_widget->setMode(TextToolsWidget::LaTeX, rwpart); } else if (m_widget) { - kdDebug(9030) << "hide output view" << endl; - mainWindow()->removeView(m_widget); +// kdDebug(9030) << "hide output view" << endl; +// mainWindow()->removeView(m_widget); + m_widget->clear(); } }