Bug 513550

Summary: Crash when start debugging with LLDB but LLDB and/or MI not installed
Product: [Applications] kdevelop Reporter: Nathaniel <I>
Component: generalAssignee: kdevelop-bugs-null
Status: CONFIRMED ---    
Severity: crash CC: igorkuo
Priority: NOR Keywords: drkonqi
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Nathaniel 2025-12-18 18:58:36 UTC
Application: kdevelop (6.3.250803 (25.08.3))
 (Compiled from sources)
ApplicationNotResponding [ANR]: false
Qt Version: 6.9.3
Frameworks Version: 6.18.0
Operating System: Linux 6.12.41-gentoo-revelation x86_64
Windowing System: Wayland
Distribution: "Gentoo Linux"
DrKonqi: 6.3.80 [KCrashBackend]

-- Information about the crash:
I've got a small Meson project with a program I need to debug, and I'm having some trouble with GDB so I decided to give LLDB a try, but KDev crashed when starting debugging. Turns out LLDB wasn't installed yet, nor was the MI driver.

I selected LLDB for the debugger in my Launch Configuration and tried to start debugging. I have selected to run the program in Konsole, and it starts Konsole then KDevelop crashes leaving an empty Konsole window behind.

I realized I didn't have LLDB installed yet, so I installed it, and the crash persisted, so then I installed the LLDB MI, and that resolved the crash, so it seems the crash is due to the selected debugger and interface not being present. :-)

Note on debugging symbols:
I have Gentoo configured with splitdebug globally so debugging symbols are present but separate for, well, everything. If the symbols aren't loading properly and the backtrace is of low quality, I can try to improve it if I get some guidance on how to make the separate debug symbols load.

The crash can be reproduced every time.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault

[KCrash Handler]
#6  0x00007f33af017319 in KDevMI::MIDebugSession::startDebugging(KDevMI::InferiorStartupInfo const&) () at /usr/lib64/qt6/plugins/kdevplatform/63/kdevlldb.so
#7  0x00007f33af026231 in KDevMI::MIDebugJob::start() () at /usr/lib64/qt6/plugins/kdevplatform/63/kdevlldb.so
#8  0x00007f342235e0f8 in KDevelop::RunController::registerJob(KJob*) () at /usr/lib64/libKDevPlatformShell.so.63
#9  0x00007f342235a1dd in KDevelop::RunController::execute(QString const&, KDevelop::ILaunchConfiguration*) () at /usr/lib64/libKDevPlatformShell.so.63
#10 0x00007f342235cf18 in KDevelop::RunController::slotDebug() () at /usr/lib64/libKDevPlatformShell.so.63
#11 0x00007f34207856d1 in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/libQt6Core.so.6
#12 0x00007f34212bdbe2 in QAction::activate(QAction::ActionEvent) () at /usr/lib64/libQt6Gui.so.6
#13 0x00007f3421d00e91 in QAbstractButtonPrivate::click() () at /usr/lib64/libQt6Widgets.so.6
#14 0x00007f3421d010ae in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQt6Widgets.so.6
#15 0x00007f3421ab902b in QToolButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQt6Widgets.so.6
#16 0x00007f3421e63d48 in QWidget::event(QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#17 0x00007f3421e4f6b6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#18 0x00007f3421e5037e in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#19 0x00007f34207a0408 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#20 0x00007f3421e5b2c3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /usr/lib64/libQt6Widgets.so.6
#21 0x00007f3421e5ea9a in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /usr/lib64/libQt6Widgets.so.6
#22 0x00007f3421e65e20 in QWidgetWindow::event(QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#23 0x00007f3421e4f6b6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#24 0x00007f34207a0408 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#25 0x00007f3420dc0354 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib64/libQt6Gui.so.6
#26 0x00007f3420e3748c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Gui.so.6
#27 0x00007f3420e376d7 in QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Gui.so.6
#28 0x00007f3420709b80 in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
#29 0x00007f3421e4f6b6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#30 0x00007f34207a0408 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#31 0x00007f34207cc2eb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt6Core.so.6
#32 0x00007f34204cfe47 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib64/libQt6Core.so.6
#33 0x00007f341bef3df5 in g_main_dispatch () at /usr/lib64/libglib-2.0.so.0
#34 0x00007f341bef73c8 in g_main_context_iterate_unlocked.isra () at /usr/lib64/libglib-2.0.so.0
#35 0x00007f341bef7d00 in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#36 0x00007f34204cfed3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#37 0x00007f34207d85a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#38 0x00007f34207d8993 in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
#39 0x0000559406eecef4 in main ()
[Inferior 1 (process 20874) detached]

Reported using DrKonqi
Comment 1 Igor Kushnir 2025-12-19 09:36:23 UTC
I uninstalled the lldb-mi and lldb packages on my Manjaro system, started debugging with LLDB in the latest KDevelop master version and got the following shell-embedded error message rather than a crash:
Could not start debugger.
Could not run 'lldb-mi'. Make sure that the path name is specified correctly.

But when I configured an external terminal, KDevelop indeed crashed. I have recently discovered this crash on my own, but only in case the LLDB version is too old, which is highly unlikely in practice. I have started but not yet finished fixing the crash by eliminating a nested event loop in STTY::findExternalTTY(). Hopefully the fix will be merged and released in KDevelop version 6.5.260400.