https://bugs.kde.org/show_bug.cgi?id=353977

--- Comment #4 from Marcel Martin <m...@freenet.de> ---
My C++ foo is limited, but I believe this is the relevant part of the
backtrace:

#10 0x00007f53b3e02f31 in std::terminate() () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007f53b3e03a7f in __cxa_pure_virtual () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007f53b46ce96a in QPlatformScreen::physicalSize (this=<optimized out>)
at kernel/qplatformscreen.cpp:131 
#13 0x00007f53b47087b2 in QScreen::physicalSize (this=this@entry=0x26bd450) at
kernel/qscreen.cpp:245
#14 0x00007f53b4708869 in QScreen::physicalDotsPerInch (this=0x26bd450) at
kernel/qscreen.cpp:168
#15 0x00007f53b8d97c49 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#16 0x00007f53b43c59c9 in QMetaObject::activate (sender=sender@entry=0x289a100,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7ffcd4ccd7d0) at kernel/qobject.cpp:3716 

and 

#27 0x00007f53b4708679 in QScreen::~QScreen (this=0x26bd450,
__in_chrg=<optimized out>) at kernel/qscreen.cpp:77
#28 0x00007f53b46cef2a in QPlatformScreen::~QPlatformScreen (this=0x26bd1f0,
__in_chrg=<optimized out>) at kernel/qplatformscreen.cpp:57
#29 0x00007f53a6cde769 in QXcbScreen::~QXcbScreen (this=0x26bd1f0,
__in_chrg=<optimized out>) at qxcbscreen.cpp:222 

QPlatformScreen::physicalSize is a pure virtual function. __cxa_pure_virtual is
an error handler that gets called when a pure virtual function is called. I
think this is what happens:

- QXcbScreen destructor is called (#29)
- which in turn calls QScreen destructor (#28)
- which in turn calls QPlatformScreen destructor (#27)
- which somehow triggers that a signal is emitted
- that signal then ends up being received by the QXcbScreen instance, which is
already destroyed

This could also explain the question marks in frame #15.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to