https://bugs.kde.org/show_bug.cgi?id=493410
Bug ID: 493410 Summary: crash from consecutive `ctrl+.` definition navigations of functions/structures/variables Classification: Applications Product: kdevelop Version: unspecified Platform: Ubuntu OS: Linux Status: REPORTED Keywords: drkonqi Severity: crash Priority: NOR Component: general Assignee: kdevelop-bugs-n...@kde.org Reporter: j...@advops.com Target Milestone: --- Application: kdevelop (5.12.230805 (23.08.5)) Qt Version: 5.15.13 Frameworks Version: 5.115.0 Operating System: Linux 6.8.0-45-generic x86_64 Windowing System: X11 Distribution: Ubuntu 24.04.1 LTS DrKonqi: 5.27.11 [KCrashBackend] -- Information about the crash: * not sure what is realated to the crash, but will provide as much detail as possible in the following steps to reproduce: 1. Perform a build of the project (either 'F8' or from the project side-bar 'build' menu button). 2. Pop the build window out of the dock and move and size it beside the KDevelop main window. 3. click on several error or warning messages to bring up source files. I don't know if this is related, but the crash usuall happens after several builds. For example, turn on a much higher warning level, and navigate through several warnings across different source files. 4. from a the source files, use the mouse hover to bring up the popup definitions and declarations of various variables and function calls and parameters. I don't know if this is a required step to the crash, but it does seem associated. Meaning it doesn't seem to crash if I don't hover for info, and does seem to crash when I do hover ahead of the consecutive `ctrl+.` navigations. 5. mouse click to set the focus on a variable to a structure. 6. press `ctrl+.` to navigate to the definition of the variable/structure/function; this will typically be the structure where the variable is instantiated (e.g. a structure declared static and instantiated). It is more consisten to start with a peripheral variable and navigate up from the variable to the larger structure/class definitions. 7. then select another variable/structure/function/class declaration and press `Ctrl+.`. 8. this is supposed to navigate to the definition of the variable/structure/function/class , but will often crash instead. 9. if it does not crash, go through another `Ctrl+.` navigation from the presented file to another variable/structure/function/class , … In other words, it seems to crash from repeated consecutive `ctrl+.` navigations to variable/structure/function/class definitions. The crash can be reproduced sometimes. -- Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault [KCrash Handler] #4 0x00007006827d48e0 in QPixmap::devicePixelRatio() const () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #5 0x0000700670737108 in Oxygen::TileSet::render(QRect const&, QPainter*, QFlags<Oxygen::TileSet::Tile>) const () at /lib/x86_64-linux-gnu/liboxygenstyle5.so.5 #6 0x00007006707dee71 in ??? () at /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so #7 0x0000700670799968 in ??? () at /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so #8 0x0000700682fb0df8 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #9 0x0000700682f6bd45 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #10 0x00007006822d8118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #11 0x0000700682fa8aee in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #12 0x0000700682fa94a9 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #13 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #14 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #15 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #16 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #17 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #18 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #19 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #20 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #21 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #22 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #23 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #24 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #25 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #26 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #27 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #28 0x0000700682f7ddc8 in ??? () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #29 0x0000700682fb146c in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #30 0x0000700682f6bd45 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #31 0x00007006822d8118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #32 0x00007006822db94b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #33 0x0000700682335c0f in ??? () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #34 0x000070067e1145b5 in g_main_dispatch (context=0x70066c000ed0) at ../../../glib/gmain.c:3344 #35 0x000070067e173717 in g_main_context_dispatch_unlocked (context=0x70066c000ed0) at ../../../glib/gmain.c:4152 #36 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x70066c000ed0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4217 #37 0x000070067e113a53 in g_main_context_iteration (context=0x70066c000ed0, may_block=1) at ../../../glib/gmain.c:4282 #38 0x0000700682335279 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #39 0x00007006822d6a7b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #40 0x00007006822df3e8 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #41 0x00005edc884d248c in ??? () #42 0x000070068182a1ca in __libc_start_call_main (main=main@entry=0x5edc884cd890, argc=argc@entry=2, argv=argv@entry=0x7ffc82abdb38) at ../sysdeps/nptl/libc_start_call_main.h:58 #43 0x000070068182a28b in __libc_start_main_impl (main=0x5edc884cd890, argc=2, argv=0x7ffc82abdb38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc82abdb28) at ../csu/libc-start.c:360 #44 0x00005edc884d2fd5 in ??? () [Inferior 1 (process 8090) detached] Reported using DrKonqi -- You are receiving this mail because: You are watching all bug changes.