Bug 335470 - Build Directory change is ignored
Summary: Build Directory change is ignored
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: BuildSystem: Custom BuildSystems (other bugs)
Version First Reported In: 4.6.0
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-28 13:38 UTC by Aleksey Midenkov
Modified: 2017-01-16 22:47 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksey Midenkov 2014-05-28 13:38:52 UTC
Look steps.

Reproducible: Always

Steps to Reproduce:
1. Configure Custome BuildSystem to build in dir A
2. Try to build -- it will be A
3. Configure Custome BuildSystem to build in dir B
4. Try to build
Actual Results:  
A

Expected Results:  
B

Only change inside Build Tools finally applies change of Build Directory
Comment 1 Alexander 2016-03-07 11:04:51 UTC
I confirm it. 
I'm going to fix it
Comment 2 Kevin Funk 2016-03-08 23:14:23 UTC
While your patch fixes the issue with the build directory, I'm now getting a crash when I reopen the Configuration dialog a second time. Sigh.

Trace:
=================================================================
==6091==ERROR: AddressSanitizer: heap-use-after-free on address 0x611001ccded8 at pc 0x7f81def8a6a2 bp 0x7ffd71abd790 sp 0x7ffd71abd788
READ of size 1 at 0x611001ccded8 thread T0
    #0 0x7f81def8a6a1 in ConfigWidget::setTool(CustomBuildSystemTool const&) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:85:40
    #1 0x7f81def88690 in ConfigWidget::changeAction(int) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:100:9
    #2 0x7f81def89e8e in ConfigWidget::loadConfig(CustomBuildSystemConfig) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:70:5
    #3 0x7f81def9284f in CustomBuildSystemConfigWidget::changeCurrentConfig(int) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:164:5
    #4 0x7f81def95e09 in CustomBuildSystemConfigWidget::loadFrom(KConfig*) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:111:5
    #5 0x7f81def9b83c in CustomBuildSystemKCModule::reset() /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/kcm_custombuildsystem.cpp:47:5
    #6 0x7f821b73fa4a in KDevelop::ConfigDialog::addConfigPageInternal(KPageWidgetItem*, KDevelop::ConfigPage*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/configdialog.cpp:173:5
    #7 0x7f821b73c33f in KDevelop::ConfigDialog::addConfigPage(KDevelop::ConfigPage*, KDevelop::ConfigPage*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/configdialog.cpp:157:9
    #8 0x7f821b73ab3d in KDevelop::ConfigDialog::ConfigDialog(QVector<KDevelop::ConfigPage*> const&, QWidget*, QFlags<Qt::WindowType>) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/configdialog.cpp:51:9
    #9 0x7f821b2e698f in KDevelop::ProjectControllerPrivate::projectConfig(QObject*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/projectcontroller.cpp:149:32
    #10 0x7f821b2be080 in KDevelop::ProjectController::configureProject(KDevelop::IProject*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/projectcontroller.cpp:974:5
    #11 0x7f81eb33bc3b in ProjectTreeView::openProjectConfig() /home/kfunk/devel/src/kf5/kdevplatform-stable/plugins/projectmanagerview/projecttreeview.cpp:368:9
    #12 0x7f81eb34df5d in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ProjectTreeView::*)()>::call(void (ProjectTreeView::*)(), ProjectTreeView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:13
    #13 0x7f81eb34dae1 in void QtPrivate::FunctionPointer<void (ProjectTreeView::*)()>::call<QtPrivate::List<>, void>(void (ProjectTreeView::*)(), ProjectTreeView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520:13
    #14 0x7f81eb34d20b in QtPrivate::QSlotObject<void (ProjectTreeView::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143:17
    #15 0x7f8215a44e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e)
    #16 0x7f82162ff411 in QAction::triggered(bool) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x151411)
    #17 0x7f8216301897 in QAction::activate(QAction::ActionEvent) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x153897)
    #18 0x7f8216483df1  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2d5df1)
    #19 0x7f821648a08b  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2dc08b)
    #20 0x7f821648dfff in QMenu::mouseReleaseEvent(QMouseEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2dffff)
    #21 0x7f821634bf87 in QWidget::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x19df87)
    #22 0x7f821648ea52 in QMenu::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2e0a52)
    #23 0x7f821630905b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b05b)
    #24 0x7f821630ec18 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x160c18)
    #25 0x7f8215a165ba in QCoreApplication::notifyInternal(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2865ba)
    #26 0x7f821630db31 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15fb31)
    #27 0x7f82163668dc  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1b88dc)
    #28 0x7f8216368b3a  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1bab3a)
    #29 0x7f821630905b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b05b)
    #30 0x7f821630e515 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x160515)
    #31 0x7f8215a165ba in QCoreApplication::notifyInternal(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2865ba)
    #32 0x7f8215d58520 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xf2520)
    #33 0x7f8215d5a1e4 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xf41e4)
    #34 0x7f8215d3df37 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xd7f37)
    #35 0x7f81fda81d6f  (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5+0x6ad6f)
    #36 0x7f820b241126 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a126)
    #37 0x7f820b24137f  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a37f)
    #38 0x7f820b24142b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a42b)
    #39 0x7f8215a6ca4e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2dca4e)
    #40 0x7f8215a13d79 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x283d79)
    #41 0x7f8216488ddf in QMenu::exec(QPoint const&, QAction*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2daddf)
    #42 0x7f81eb33018d in ProjectTreeView::popupContextMenu(QPoint const&) /home/kfunk/devel/src/kf5/kdevplatform-stable/plugins/projectmanagerview/projecttreeview.cpp:359:9
    #43 0x7f81eb35d0d4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QPoint const&>, void, void (ProjectTreeView::*)(QPoint const&)>::call(void (ProjectTreeView::*)(QPoint const&), ProjectTreeView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:14
    #44 0x7f81eb35cbf1 in void QtPrivate::FunctionPointer<void (ProjectTreeView::*)(QPoint const&)>::call<QtPrivate::List<QPoint const&>, void>(void (ProjectTreeView::*)(QPoint const&), ProjectTreeView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520:13
    #45 0x7f81eb35c31b in QtPrivate::QSlotObject<void (ProjectTreeView::*)(QPoint const&), QtPrivate::List<QPoint const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143:17
    #46 0x7f8215a44e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e)
    #47 0x7f8216332be4 in QWidget::customContextMenuRequested(QPoint const&) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x184be4)
    #48 0x7f821634c97d in QWidget::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x19e97d)
    #49 0x7f821644ab2d in QFrame::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x29cb2d)
    #50 0x7f82165705aa in QAbstractItemView::viewportEvent(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x3c25aa)
    #51 0x7f82165af0cb in QTreeView::viewportEvent(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4010cb)
    #52 0x7f8215a163a1 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2863a1)
    #53 0x7f821630903b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b03b)
    #54 0x7f821630fea0 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x161ea0)
    #55 0x7f8215a165ba in QCoreApplication::notifyInternal(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2865ba)
    #56 0x7f82163666b1  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1b86b1)
    #57 0x7f8216368b3a  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1bab3a)
    #58 0x7f821630905b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b05b)
    #59 0x7f821630e515 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x160515)
    #60 0x7f8215a165ba in QCoreApplication::notifyInternal(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2865ba)
    #61 0x7f8215d58520 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xf2520)
    #62 0x7f8215d5a1e4 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xf41e4)
    #63 0x7f8215d3df37 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xd7f37)
    #64 0x7f81fda81d6f  (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5+0x6ad6f)
    #65 0x7f820b241126 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a126)
    #66 0x7f820b24137f  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a37f)
    #67 0x7f820b24142b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a42b)
    #68 0x7f8215a6ca4e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2dca4e)
    #69 0x7f8215a13d79 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x283d79)
    #70 0x7f8215a1be1b in QCoreApplication::exec() (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x28be1b)
    #71 0x503869 in main /home/kfunk/devel/src/kf5/kdevelop-stable/app/main.cpp:671:12
    #72 0x7f821451c9ff in __libc_start_main /build/glibc-uCRKup/glibc-2.21/csu/libc-start.c:289
    #73 0x43c128 in _start (/home/kfunk/devel/install/kf5-stable/bin/kdevelop+0x43c128)

0x611001ccded8 is located 24 bytes inside of 224-byte region [0x611001ccdec0,0x611001ccdfa0)
freed by thread T0 here:
    #0 0x4c2e32 in free (/home/kfunk/devel/install/kf5-stable/bin/kdevelop+0x4c2e32)
    #1 0x7f81def8e6cc in QTypedArrayData<CustomBuildSystemTool>::deallocate(QArrayData*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:222:9
    #2 0x7f81def8e6cc in QVector<CustomBuildSystemTool>::freeData(QTypedArrayData<CustomBuildSystemTool>*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:492
    #3 0x7f81def930ae in QVector<CustomBuildSystemTool>::~QVector() /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:68:46
    #4 0x7f81def930ae in CustomBuildSystemConfig::~CustomBuildSystemConfig() /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/custombuildsystemconfig.h:45
    #5 0x7f81def930ae in CustomBuildSystemConfigWidget::configChanged() /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:151
    #6 0x7f81def9a5fd in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CustomBuildSystemConfigWidget::*)()>::call(void (CustomBuildSystemConfigWidget::*)(), CustomBuildSystemConfigWidget*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:13
    #7 0x7f81def9a5fd in void QtPrivate::FunctionPointer<void (CustomBuildSystemConfigWidget::*)()>::call<QtPrivate::List<>, void>(void (CustomBuildSystemConfigWidget::*)(), CustomBuildSystemConfigWidget*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520
    #8 0x7f81def9a5fd in QtPrivate::QSlotObject<void (CustomBuildSystemConfigWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143
    #9 0x7f8215a44e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e)
    #10 0x7f81def9d3e3 in ConfigWidget::changed() /home/kfunk/devel/build/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/moc_configwidget.cpp:153:5
    #11 0x7f81def8908e in void ConfigWidget::applyChange<ConfigWidget::actionEnvironmentChanged(QString const&)::$_2>(ConfigWidget::actionEnvironmentChanged(QString const&)::$_2) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:155:10
    #12 0x7f81def8908e in ConfigWidget::actionEnvironmentChanged(QString const&) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:120
    #13 0x7f81def8f0dc in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (ConfigWidget::*)(QString const&)>::call(void (ConfigWidget::*)(QString const&), ConfigWidget*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:14
    #14 0x7f81def8f0dc in void QtPrivate::FunctionPointer<void (ConfigWidget::*)(QString const&)>::call<QtPrivate::List<QString const&>, void>(void (ConfigWidget::*)(QString const&), ConfigWidget*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520
    #15 0x7f81def8f0dc in QtPrivate::QSlotObject<void (ConfigWidget::*)(QString const&), QtPrivate::List<QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143
    #16 0x7f8215a44e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e)
    #17 0x7f821a1cf07d in KDevelop::EnvironmentSelectionWidget::currentProfileChanged(QString const&) /home/kfunk/devel/build/kf5/kdevplatform-stable/util/moc_environmentselectionwidget.cpp:178:5
    #18 0x7f821a0d5b28 in KDevelop::EnvironmentSelectionWidget::setCurrentProfile(QString const&) /home/kfunk/devel/src/kf5/kdevplatform-stable/util/environmentselectionwidget.cpp:84:10
    #19 0x7f81def8a51e in ConfigWidget::setTool(CustomBuildSystemTool const&) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:84:5
    #20 0x7f81def88690 in ConfigWidget::changeAction(int) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:100:9
    #21 0x7f81def89e8e in ConfigWidget::loadConfig(CustomBuildSystemConfig) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:70:5
    #22 0x7f81def9284f in CustomBuildSystemConfigWidget::changeCurrentConfig(int) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:164:5
    #23 0x7f81def95e09 in CustomBuildSystemConfigWidget::loadFrom(KConfig*) /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:111:5
    #24 0x7f81def9b83c in CustomBuildSystemKCModule::reset() /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/kcm_custombuildsystem.cpp:47:5
    #25 0x7f821b73fa4a in KDevelop::ConfigDialog::addConfigPageInternal(KPageWidgetItem*, KDevelop::ConfigPage*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/configdialog.cpp:173:5
    #26 0x7f821b73c33f in KDevelop::ConfigDialog::addConfigPage(KDevelop::ConfigPage*, KDevelop::ConfigPage*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/configdialog.cpp:157:9
    #27 0x7f821b73ab3d in KDevelop::ConfigDialog::ConfigDialog(QVector<KDevelop::ConfigPage*> const&, QWidget*, QFlags<Qt::WindowType>) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/configdialog.cpp:51:9
    #28 0x7f821b2e698f in KDevelop::ProjectControllerPrivate::projectConfig(QObject*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/projectcontroller.cpp:149:32
    #29 0x7f821b2be080 in KDevelop::ProjectController::configureProject(KDevelop::IProject*) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/projectcontroller.cpp:974:5
    #30 0x7f81eb33bc3b in ProjectTreeView::openProjectConfig() /home/kfunk/devel/src/kf5/kdevplatform-stable/plugins/projectmanagerview/projecttreeview.cpp:368:9
    #31 0x7f81eb34df5d in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ProjectTreeView::*)()>::call(void (ProjectTreeView::*)(), ProjectTreeView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:13
    #32 0x7f81eb34dae1 in void QtPrivate::FunctionPointer<void (ProjectTreeView::*)()>::call<QtPrivate::List<>, void>(void (ProjectTreeView::*)(), ProjectTreeView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520:13
    #33 0x7f81eb34d20b in QtPrivate::QSlotObject<void (ProjectTreeView::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143:17
    #34 0x7f8215a44e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e)
    #35 0x7f82162ff411 in QAction::triggered(bool) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x151411)

previously allocated by thread T0 here:
    #0 0x4c3112 in malloc (/home/kfunk/devel/install/kf5-stable/bin/kdevelop+0x4c3112)
    #1 0x7f8215836e67 in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xa6e67)

SUMMARY: AddressSanitizer: heap-use-after-free /home/kfunk/devel/src/kf5/kdevelop-stable/projectmanagers/custom-buildsystem/configwidget.cpp:85 ConfigWidget::setTool(CustomBuildSystemTool const&)
Shadow bytes around the buggy address:
  0x0c2280391b80: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x0c2280391b90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2280391ba0: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
  0x0c2280391bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c2280391bc0: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa
=>0x0c2280391bd0: fa fa fa fa fa fa fa fa fd fd fd[fd]fd fd fd fd
  0x0c2280391be0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2280391bf0: fd fd fd fd fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c2280391c00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2280391c10: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
  0x0c2280391c20: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==6091==ABORTING
Comment 3 Kevin Funk 2016-03-08 23:14:57 UTC
Unrelated to your patch though. Will push your patch for now.
Comment 4 Kevin Funk 2016-03-08 23:16:05 UTC
Git commit b79b903762afde553bed0daa06bde19bf42f7298 by Kevin Funk.
Committed on 08/03/2016 at 23:15.
Pushed by kfunk into branch '5.0'.

Notify settings about build dir change.

Summary:
Notify settings about build dir change.

Reviewers: kfunk

Reviewed By: kfunk

Subscribers: kdevelop-devel, coopht

Projects: #kdevelop

Differential Revision: https://phabricator.kde.org/D1089

M  +2    -0    projectmanagers/custom-buildsystem/configwidget.cpp

http://commits.kde.org/kdevelop/b79b903762afde553bed0daa06bde19bf42f7298
Comment 5 Kevin Funk 2017-01-16 22:47:25 UTC
Git commit 5f1e4974d8fd2259425062f02635b1bc27b57495 by Kevin Funk.
Committed on 16/01/2017 at 22:47.
Pushed by kfunk into branch '5.0'.

custom-buildsystem: Fix crash while configuring

Fix crash when starting configure a custom build system managed project.
FIXED-IN: 5.0.4

M  +2    -1    projectmanagers/custom-buildsystem/configwidget.cpp

https://commits.kde.org/kdevelop/5f1e4974d8fd2259425062f02635b1bc27b57495