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.

Reply via email to