vioken / waylib

A wrapper for wlroots based on Qt
44 stars 23 forks source link

BUG: tinywl-qtquick unexpected crash #359

Open lbwtw opened 1 month ago

lbwtw commented 1 month ago
DISPLAY=:2 QT_SCALE_FACTOR=2 qtcreator -platform xcb

tinywl-qtquick unexpected crash

warning: Build-id of /home/xyb/Documents/Deepin/waylib/build_cmake/src/server/libwaylibserver.so.0 does not match core file.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `./tinywl-qtquick'.
Program terminated with signal SIGABRT, Aborted.
#0  0x000073e3288a8e44 in ?? () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x73e324740000 (LWP 9632))]
(gdb) bt
#0  0x000073e3288a8e44 in ??? () at /usr/lib/libc.so.6
#1  0x000073e328850a30 in raise () at /usr/lib/libc.so.6
#2  0x000073e3288384c3 in abort () at /usr/lib/libc.so.6
#3  0x000073e32928c6b7 in ??? () at /usr/lib/libQt6Core.so.6
#4  0x000073e32928ce5b in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/libQt6Core.so.6
#5  0x000073e32928ceb2 in qt_assert(char const*, char const*, int) () at /usr/lib/libQt6Core.so.6
#6  0x000073e32b56d9c5 in Waylib::Server::WSeatPrivate::doEnter (this=0x564fa4325070, surface=0x564fa4b92030, eventObject=0x564fa4d5bc40, position=...) at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wseat.cpp:182
#7  0x000073e32b566082 in Waylib::Server::WSeat::sendEvent (target=0x564fa4b92030, shellObject=0x564fa4962fd0, eventObject=0x564fa4d5bc40, event=0x7fffdf983c90) at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wseat.cpp:719
#8  0x000073e32b5b84ec in Waylib::Server::WSurfaceItem::getContentGeometry (this=0x564fa3761a10) at /home/xyb/Documents/Deepin/waylib/src/server/qtquick/wsurfaceitem.cpp:970
#9  0x000073e32b5bdb3c in Waylib::Server::WSurfaceItemContentPrivate::~WSurfaceItemContentPrivate (this=0x7fffdf983c90, __in_chrg=<optimized out>) at /home/xyb/Documents/Deepin/waylib/src/server/qtquick/wsurfaceitem.cpp:191
#10 0x000073e329344e38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#11 0x000073e32ad46795 in QQuickDeliveryAgentPrivate::sendHoverEvent(QEvent::Type, QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#12 0x000073e32ad471cf in QQuickDeliveryAgentPrivate::deliverHoverEventToItem(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool) () at /usr/lib/libQt6Quick.so.6
#13 0x000073e32ad47fdf in QQuickDeliveryAgentPrivate::deliverHoverEventRecursive(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#14 0x000073e32ad47f2a in QQuickDeliveryAgentPrivate::deliverHoverEventRecursive(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#15 0x000073e32ad47f2a in QQuickDeliveryAgentPrivate::deliverHoverEventRecursive(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#16 0x000073e32ad47f2a in QQuickDeliveryAgentPrivate::deliverHoverEventRecursive(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#17 0x000073e32ad47f2a in QQuickDeliveryAgentPrivate::deliverHoverEventRecursive(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#18 0x000073e32ad47f2a in QQuickDeliveryAgentPrivate::deliverHoverEventRecursive(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#19 0x000073e32ad48416 in QQuickDeliveryAgentPrivate::deliverHoverEvent(QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long) () at /usr/lib/libQt6Quick.so.6
#20 0x000073e32ad4fdd8 in QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent*) () at /usr/lib/libQt6Quick.so.6
#21 0x000073e32ad50373 in QQuickDeliveryAgent::event(QEvent*) () at /usr/lib/libQt6Quick.so.6
#22 0x000073e32ac4de58 in QQuickWindow::event(QEvent*) () at /usr/lib/libQt6Quick.so.6
#23 0x000073e32b5d81b8 in Waylib::Server::WOutputRenderWindow::qt_static_metacall (_o=0x564fa3761a10, _c=32767, _id=-543667984, _a=0x564fa37e0680)
    at /home/xyb/Documents/Deepin/waylib/build_cmake/src/server/waylibserver_autogen/include/moc_woutputrenderwindow.cpp:178
#24 0x000073e329344e38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#25 0x000073e32b5671e0 in Waylib::Server::WSeat::notifyButton (this=0x564fa428bd50, cursor=0x564fa3761c10, device=0x564fa379b6e0, button=1118314, state=2743234016, timestamp=29667)
    at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wseat.cpp:956
#26 0x000073e32b556b58 in Waylib::Server::WCursor::move (this=0x11106aa3761c10, device=0x564fa42e49b0, delta=...) at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wcursor.cpp:593
#27 0x000073e32b5555ef in Waylib::Server::WCursorPrivate::on_motion_absolute (this=0x564fa3873d00, event=0x7fffdf984da0) at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wcursor.cpp:352
#28 0x000073e32b556296 in operator() (__closure=0x564fa4879300, event=0x7fffdf984da0) at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wcursor.cpp:561
#29 0x000073e32b55b21a in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<wlr_pointer_button_event*>, void, Waylib::Server::WCursorPrivate::connect()::<lambda(wlr_pointer_button_event*)> >::call(struct {...} &, void **) (f=..., arg=0x7fffdf984bd0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#30 0x000073e32b55af03 in QtPrivate::detail::StorageByValue<Waylib::Server::WCursorPrivate::connect()::<lambda()>, void>::object(void) (this=0x564fa4879300) at /usr/include/qt6/QtCore/qfunctionaltools_impl.h:38
#31 0x000073e32b55a6c2 in QtPrivate::QCallableObject<Waylib::Server::WCursorPrivate::connect()::<lambda(wlr_pointer_button_event*)>, QtPrivate::List<wlr_pointer_button_event*>, void>::~QCallableObject(void)
    (this=0x564fa48792f0, __in_chrg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:530
#32 0x000073e3293a17e7 in ??? () at /usr/lib/libQt6Core.so.6
#33 0x000073e328f89eb0 in QWLRoots::QWCursor::motion (this=0x73e2f4127eb0, _t1=0x7fffdf984da0) at /home/xyb/Documents/Deepin/qwlroots/build_cmake/src/qwlroots_autogen/GZRP3O7STM/moc_qwcursor.cpp:489
#34 0x000073e328ff9aa4 in QWLRoots::QWCursorPrivate::on_motion (this=0x73e2f411b540, data=0x7fffdf984da0) at /home/xyb/Documents/Deepin/qwlroots/src/types/qwcursor.cpp:105
#35 0x000073e3290828c1 in QWLRoots::callSlot1 (wl_listener=0x73e2f40ec528, data=0x7fffdf984da0) at /home/xyb/Documents/Deepin/qwlroots/src/util/qwsignalconnector.cpp:29
#36 0x000073e32b80642e in wl_signal_emit_mutable () at /usr/lib/libwayland-server.so.0
#37 0x000073e328d4990d in handle_pointer_motion (listener=0x564fa490e7d8, data=0x7fffdf984da0) at ../types/wlr_cursor.c:677
#38 0x000073e32b80642e in wl_signal_emit_mutable () at /usr/lib/libwayland-server.so.0
#39 0x000073e328d0ddee in handle_pointer_motion (event=0x564fa4f0efd0, pointer=0x564fa477f7a8) at ../backend/libinput/pointer.c:39
#40 0x000073e328d0d72c in handle_libinput_event (backend=0x564fa42ce6a0, event=0x564fa4f0efd0) at ../backend/libinput/events.c:167
#41 0x000073e328d0c739 in handle_libinput_readable (fd=23, mask=1, _backend=0x564fa42ce6a0) at ../backend/libinput/backend.c:59
#42 0x000073e32b8080a2 in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#43 0x000073e32b578178 in Waylib::Server::WServerPrivate::init (this=0x73e32230e495) at /home/xyb/Documents/Deepin/waylib/src/server/kernel/wserver.cpp:92
#44 0x000073e32b579ee7 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WServer::addSocket(Waylib::Server::WSocket*)::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7fffdf985350)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#45 0x000073e32b579e81 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WServerPrivate::init()::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x564fa37bd5a8)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#46 0x000073e32b579da8 in QtPrivate::QCallableObject<Waylib::Server::WServer::addSocket(Waylib::Server::WSocket*)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=1, this_=0x564fa429dab0, r=0x564fa3826fa0, a=0x7fffdf985350, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:549
#47 0x000073e3293a17e7 in ??? () at /usr/lib/libQt6Core.so.6
#48 0x000073e3293aa940 in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#49 0x000073e329344e38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#50 0x000073e3295a4379 in ??? () at /usr/lib/libQt6Core.so.6
#51 0x000073e327bd0a89 in ??? () at /usr/lib/libglib-2.0.so.0
#52 0x000073e327c329b7 in ??? () at /usr/lib/libglib-2.0.so.0
#53 0x000073e327bcff95 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#54 0x000073e3295a28dd in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#55 0x000073e32934f10e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#56 0x000073e32934945d in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#57 0x0000564fa32ce48b in main (argc=1, argv=0x7fffdf985968) at /home/xyb/Documents/Deepin/waylib/examples/tinywl/main.cpp:545
(gdb) frame 8
#8  0x000073e32b5b84ec in Waylib::Server::WSurfaceItem::getContentGeometry (this=0x564fa3761a10) at /home/xyb/Documents/Deepin/waylib/src/server/qtquick/wsurfaceitem.cpp:970
970         return QRectF(QPointF(0, 0), d->surface->size());
(gdb) p d->surface
$1 = {wp = {d = 0x0, value = 0x3ff0000000000000}}