Summary: | Kdevelop crashes on splitting editor screen | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Torbjörn K. <torbjoern.k> |
Component: | general | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | david.nolden.kde |
Priority: | VHI | ||
Version: | 4.2.60 | ||
Target Milestone: | 4.2.3 | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: |
GDB log of this crash
GDB log of this crash (Kdevelop & kdevplatform installed from master through openSUSE repo) |
Description
Torbjörn K.
2011-07-17 17:38:37 UTC
Created attachment 61942 [details]
GDB log of this crash
I reproduced this bug within GDB. Steps to reproduce:
- 2 projects open, 2 files open
- right-click on one of the two file-tabs and "slit view"
--> crash
Created attachment 61943 [details]
GDB log of this crash (Kdevelop & kdevplatform installed from master through openSUSE repo)
Same crash but with KDevelop and Kdevplatform installed through openSUSE repo from master and not self-compiled. Same scenario as above.
reproducible by sharing a working set between two areas and then splitting a view valgrind log: ==3663== Invalid read of size 8 ==3663== at 0x90F85E2: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (in /usr/lib/libQtCore.so.4.7.3) ==3663== by 0x7255509: Sublime::Area::addView(Sublime::View*, Sublime::AreaIndex*, Qt::Orientation) (area.cpp:198) ==3663== by 0x725548A: Sublime::Area::addView(Sublime::View*, Sublime::View*, Qt::Orientation) (area.cpp:191) ==3663== by 0x55AF888: KDevelop::MainWindowPrivate::split(Qt::Orientation) (mainwindow_actions.cpp:128) ==3663== by 0x55AF7E6: KDevelop::MainWindowPrivate::splitHorizontal() (mainwindow_actions.cpp:111) ==3663== by 0x55AFBD8: KDevelop::MainWindowPrivate::contextMenuSplitHorizontal() (mainwindow_actions.cpp:195) ==3663== by 0x55B0179: KDevelop::MainWindowPrivate::qt_metacall(QMetaObject::Call, int, void**) (mainwindow_p.moc:163) ==3663== by 0x90F77F9: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==3663== by 0x97E2B61: QAction::triggered(bool) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x97E2D4E: QAction::activate(QAction::ActionEvent) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9C14C18: ??? (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9C1A861: ??? (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x89B6C9C: KMenu::mouseReleaseEvent(QMouseEvent*) (in /usr/lib/libkdeui.so.5.6.0) ==3663== by 0x983969F: QWidget::event(QEvent*) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9C1BE0A: QMenu::event(QEvent*) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x97E9173: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x97EE8E1: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x88EFE05: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdeui.so.5.6.0) ==3663== by 0x90E4BBB: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.7.3) ==3663== by 0x97EA141: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9866A0C: ??? (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9865109: QApplication::x11ProcessEvent(_XEvent*) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x988C541: ??? (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0xFC7629C: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.2800.8) ==3663== by 0xFC76A77: ??? (in /usr/lib/libglib-2.0.so.0.2800.8) ==3663== Address 0x1ff81210 is 0 bytes inside a block of size 32 free'd ==3663== at 0x4C251FC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==3663== by 0x55DBD4F: KDevelop::TextView::~TextView() (textdocument.cpp:549) ==3663== by 0x55D9454: KDevelop::PartDocument::close(KDevelop::IDocument::DocumentSaveMode) (partdocument.cpp:136) ==3663== by 0x55DBB77: KDevelop::TextDocument::close(KDevelop::IDocument::DocumentSaveMode) (textdocument.cpp:519) ==3663== by 0x55D96D9: KDevelop::PartDocument::closeDocument(bool) (partdocument.cpp:153) ==3663== by 0x7256FDE: Sublime::Area::closeView(Sublime::View*, bool) (area.cpp:448) ==3663== by 0x725714A: Sublime::Area::clearViews(bool) (area.cpp:470) ==3663== by 0x5595AB0: KDevelop::WorkingSet::loadToArea(Sublime::Area*, Sublime::AreaIndex*, bool) (workingset.cpp:189) ==3663== by 0x559879C: KDevelop::WorkingSet::changed(Sublime::Area*) (workingset.cpp:508) ==3663== by 0x55976BD: KDevelop::WorkingSet::areaViewAdded(Sublime::AreaIndex*, Sublime::View*) (workingset.cpp:367) ==3663== by 0x55989D3: KDevelop::WorkingSet::qt_metacall(QMetaObject::Call, int, void**) (workingset.moc:84) ==3663== by 0x90F77F9: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==3663== by 0x7257582: Sublime::Area::viewAdded(Sublime::AreaIndex*, Sublime::View*) (area.moc:115) ==3663== by 0x72554D2: Sublime::Area::addView(Sublime::View*, Sublime::AreaIndex*, Qt::Orientation) (area.cpp:197) ==3663== by 0x725548A: Sublime::Area::addView(Sublime::View*, Sublime::View*, Qt::Orientation) (area.cpp:191) ==3663== by 0x55AF888: KDevelop::MainWindowPrivate::split(Qt::Orientation) (mainwindow_actions.cpp:128) ==3663== by 0x55AF7E6: KDevelop::MainWindowPrivate::splitHorizontal() (mainwindow_actions.cpp:111) ==3663== by 0x55AFBD8: KDevelop::MainWindowPrivate::contextMenuSplitHorizontal() (mainwindow_actions.cpp:195) ==3663== by 0x55B0179: KDevelop::MainWindowPrivate::qt_metacall(QMetaObject::Call, int, void**) (mainwindow_p.moc:163) ==3663== by 0x90F77F9: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.3) ==3663== by 0x97E2B61: QAction::triggered(bool) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x97E2D4E: QAction::activate(QAction::ActionEvent) (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9C14C18: ??? (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x9C1A861: ??? (in /usr/lib/libQtGui.so.4.7.3) ==3663== by 0x89B6C9C: KMenu::mouseReleaseEvent(QMouseEvent*) (in /usr/lib/libkdeui.so.5.6.0) ==3663== Git commit 3e8ee920d901e4bb11eebe398728054f7c9126f1 by David Nolden. Committed on 19/07/2011 at 14:53. Pushed by zwabel into branch 'master'. Fix a possible crash when working with split-views and when the working-set is active in multiple areas. It doesn't seem to be safe to clear one whole area while working on another one, so bring back the old updating code which only selectively closes views. Clear the whole area on a higher level while switching working-sets, to make sure we sublime doesn't break while updating the views. CCMAIL: kdevelop-devel@barney.cs.uni-potsdam.de BUG: 277961 M +4 -2 shell/workingsetcontroller.cpp M +7 -2 shell/workingsets/workingset.cpp http://commits.kde.org/kdevplatform/3e8ee920d901e4bb11eebe398728054f7c9126f1 |