Version: 2.5.1 (using KDE KDE 3.5.1) Installed from: Gentoo Packages Compiler: gcc-3.4.4 -march=k8 -pipe -O2 OS: Linux When you configure "External Tools", Kate will crash if you select a "separator" then click on the "Modify" button. The "Modify" should be disabled when you click on a "separator", and enabled only when you click on a real tool. This could avoid the crash.
I just ran into this one. Hamish Rodda also reproduced it. Using host libthread_db library "/lib/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 19690)] [KCrash handler] #6 0xb71bcf1a in QLineEditPrivate::setText () from /opt/qt-copy/lib/libqt-mt.so.3 #7 0xb71c00f7 in QLineEdit::setText () from /opt/qt-copy/lib/libqt-mt.so.3 #8 0xb5fa1034 in KateExternalToolServiceEditor::KateExternalToolServiceEditor () from /opt/kde_trunk/lib/libkateinterfaces.so.0 #9 0xb5fa1f7c in KateExternalToolsConfigWidget::slotEdit () from /opt/kde_trunk/lib/libkateinterfaces.so.0 #10 0xb5fa4b84 in KateExternalToolsConfigWidget::qt_invoke () from /opt/kde_trunk/lib/libkateinterfaces.so.0 #11 0xb70ea184 in QObject::activate_signal () from /opt/qt-copy/lib/libqt-mt.so.3 #12 0xb70ea91c in QObject::activate_signal () from /opt/qt-copy/lib/libqt-mt.so.3 #13 0xb744ac7c in QButton::clicked () from /opt/qt-copy/lib/libqt-mt.so.3 #14 0xb71821a1 in QButton::mouseReleaseEvent () from /opt/qt-copy/lib/libqt-mt.so.3 #15 0xb7124084 in QWidget::event () from /opt/qt-copy/lib/libqt-mt.so.3 #16 0xb708635f in QApplication::internalNotify () from /opt/qt-copy/lib/libqt-mt.so.3 #17 0xb70865b6 in QApplication::notify () from /opt/qt-copy/lib/libqt-mt.so.3 #18 0xb7700385 in KApplication::notify () from /opt/kde_trunk/lib/libkdecore.so.4 #19 0xb701eb8a in QETWidget::translateMouseEvent () from /opt/qt-copy/lib/libqt-mt.so.3 #20 0xb701cdfc in QApplication::x11ProcessEvent () from /opt/qt-copy/lib/libqt-mt.so.3 #21 0xb7030b35 in QEventLoop::processEvents () from /opt/qt-copy/lib/libqt-mt.so.3 #22 0xb709cb01 in QEventLoop::enterLoop () from /opt/qt-copy/lib/libqt-mt.so.3 #23 0xb70854ef in QApplication::enter_loop () from /opt/qt-copy/lib/libqt-mt.so.3 #24 0xb7280442 in QDialog::exec () from /opt/qt-copy/lib/libqt-mt.so.3 #25 0xb5f87bfc in KateMainWindow::slotConfigure () from /opt/kde_trunk/lib/libkateinterfaces.so.0 #26 0xb5f8d13c in KateMainWindow::qt_invoke () from /opt/kde_trunk/lib/libkateinterfaces.so.0 #27 0xb70ea184 in QObject::activate_signal () from /opt/qt-copy/lib/libqt-mt.so.3 #28 0xb70ea91c in QObject::activate_signal () from /opt/qt-copy/lib/libqt-mt.so.3 #29 0xb7a24199 in KAction::activated () from /opt/kde_trunk/lib/libkdeui.so.4 #30 0xb7a24d6a in KAction::slotActivated () from /opt/kde_trunk/lib/libkdeui.so.4 #31 0xb7a2a929 in KAction::slotPopupActivated () from /opt/kde_trunk/lib/libkdeui.so.4 #32 0xb7a2ac25 in KAction::qt_invoke () from /opt/kde_trunk/lib/libkdeui.so.4 #33 0xb70ea184 in QObject::activate_signal () from /opt/qt-copy/lib/libqt-mt.so.3 #34 0xb74438ed in QSignal::signal () from /opt/qt-copy/lib/libqt-mt.so.3 #35 0xb7104d71 in QSignal::activate () from /opt/qt-copy/lib/libqt-mt.so.3 #36 0xb71fa737 in QPopupMenu::mouseReleaseEvent () from /opt/qt-copy/lib/libqt-mt.so.3 #37 0xb7a12b41 in KPopupMenu::mouseReleaseEvent () from /opt/kde_trunk/lib/libkdeui.so.4 #38 0xb7124084 in QWidget::event () from /opt/qt-copy/lib/libqt-mt.so.3 #39 0xb708635f in QApplication::internalNotify () from /opt/qt-copy/lib/libqt-mt.so.3 #40 0xb70865b6 in QApplication::notify () from /opt/qt-copy/lib/libqt-mt.so.3 #41 0xb7700385 in KApplication::notify () from /opt/kde_trunk/lib/libkdecore.so.4 #42 0xb701ede0 in QETWidget::translateMouseEvent () from /opt/qt-copy/lib/libqt-mt.so.3 #43 0xb701cdfc in QApplication::x11ProcessEvent () from /opt/qt-copy/lib/libqt-mt.so.3 #44 0xb7030b35 in QEventLoop::processEvents () from /opt/qt-copy/lib/libqt-mt.so.3 #45 0xb709cb01 in QEventLoop::enterLoop () from /opt/qt-copy/lib/libqt-mt.so.3 #46 0xb709ca56 in QEventLoop::exec () from /opt/qt-copy/lib/libqt-mt.so.3 #47 0xb70854bf in QApplication::exec () from /opt/qt-copy/lib/libqt-mt.so.3 #48 0xb5fe5059 in kdemain () from /opt/kde_trunk/lib/libkdeinit_kate.so #49 0xb5fe8884 in kdeinitmain () from /opt/kde_trunk/lib/kde3/kate.so #50 0x0804e5a3 in launch () #51 0x0804edbb in handle_launcher_request () #52 0x0804f386 in handle_requests () #53 0x0804fb91 in main ()
Created an attachment (id=16169) [details] Patch for #121607 This fixes #121607 for me by simply checking if a separator is selected to prevent the crash. The Edit Button won't get selected in that case.
The patch look sane to me indeed. Will apply later - thanks a lot.
SVN commit 542434 by dhaumann: fix crash in external tools config when clicking the edit button. CCBUG:121607 M +1 -1 kateexternaltools.cpp --- branches/KDE/3.5/kdebase/kate/app/kateexternaltools.cpp #542433:542434 @@ -719,7 +719,7 @@ { // update button state bool hs = lbTools->selectedItem() != 0; - btnEdit->setEnabled( hs && static_cast<ToolItem*>(lbTools->selectedItem()) ); + btnEdit->setEnabled( hs && dynamic_cast<ToolItem*>(lbTools->selectedItem()) ); btnRemove->setEnabled( hs ); btnMoveUp->setEnabled( ( lbTools->currentItem() > 0 ) && hs ); btnMoveDwn->setEnabled( ( lbTools->currentItem() < (int)lbTools->count()-1 )&&hs );
SVN commit 542438 by dhaumann: fix crash in external tools when clicking the edit button on separator items (If further crashes happen, please report.) BUG:121607 M +1 -1 kateexternaltools.cpp --- trunk/KDE/kdebase/kate/app/kateexternaltools.cpp #542437:542438 @@ -757,7 +757,7 @@ { // update button state bool hs = lbTools->selectedItem() != 0; - btnEdit->setEnabled( hs && static_cast<ToolItem*>(lbTools->selectedItem()) ); + btnEdit->setEnabled( hs && dynamic_cast<ToolItem*>(lbTools->selectedItem()) ); btnRemove->setEnabled( hs ); btnMoveUp->setEnabled( ( lbTools->currentItem() > 0 ) && hs ); btnMoveDwn->setEnabled( ( lbTools->currentItem() < (int)lbTools->count()-1 )&&hs );
You need to log in before you can comment on or make changes to this bug.