lxqt / qtermwidget

The terminal widget for QTerminal

Home Page:https://lxqt.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

"Unlimited History" segfaults when scrolling up after too many lines are present

correabuscar opened this issue · comments

Expected Behavior

no segfault

Current Behavior

qterminal segfaults(in libqtermwidget5.so.1.1.0) when scrolling up to the beginning, if too many lines are present in history!
Sometimes (but don't know how to reproduce this variant), just one Shift+PageUp from where I am is enough to show empty(black or zeroed) previous scrollback pages!

Possible Solution

Maybe limit the maximum number of lines ? or use a bigger type than 'int' when computing things like lines*columns otherwise the result will wrap around?

Steps to Reproduce (for bugs)
  1. start qterminal and resize to 162x52 (columns x rows) and make sure Preferences->Behavior->Unlimited history is selected.
  2. run this inside it, in bash: printf '%s\n' {1..15000000}
    this will print a number for each line up until 15 million. (will take 1 minute to run)
  3. hold left mouse button on the scrollbar and scroll back up, not too fast, until the beginning.
    qterminal should crash when you're at under 2milion lines while still scrolling up.
Context

Sometimes the history (scrollback buffer) is empty when I do a shift+PageUp, sometimes like here it crashes the window and thus looses my shell.
In the real world I encounter this when compiling things... but the shift+PageUp showing empty previous screens is what I encounter most!

System Information
  • Distribution & Version: Gentoo ~amd64
  • Kernel: 5.18.19-gentoo-r1-x86_64
  • Qt Version: Qt version 5.15.5.
  • lxqt-build-tools Version: I don't know how to get this?
  • Package version: x11-terms/qterminal-1.1.0::gentoo x11-libs/qtermwidget-1.1.0::gentoo

Character* ScreenWindow::getImage()
{
// reallocate internal buffer if the window size has changed
int size = windowLines() * windowColumns();
if (_windowBuffer == nullptr || _windowBufferSize != size)

At first glance, 15 million lines of 163 rows seems to overflow int size there.
15000000*163 = 2_445_000_000 > 2^31 = 2_147_483_648

But there are other int places:

int unusedLines = windowEndLine - screenEndLine;
int charsToFill = unusedLines * windowColumns();
Screen::fillWithDefaultChar(_windowBuffer + _windowBufferSize - charsToFill,charsToFill);

gdb backtrace? (click me to expand)
/coredumps 
$ gdb `which qterminal` `ls -tr . | tail -1`
GNU gdb (Gentoo 12.1 vanilla) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
State of pagination is off.
Reading symbols from /usr/bin/qterminal...
Reading symbols from /usr/lib/debug//usr/bin/qterminal.debug...

warning: Can't open file /tmp/#67 (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:xorg (deleted) during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing
[New LWP 21071]
[New LWP 21086]
[New LWP 21091]
[New LWP 21073]
[New LWP 21072]
[New LWP 21085]
[New LWP 21090]
[New LWP 21082]
[New LWP 21083]
[New LWP 21089]
[New LWP 21087]
[New LWP 21084]
[New LWP 21088]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/qterminal'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000728c6f2970b3 in Konsole::Screen::fillWithDefaultChar (dest=<optimized out>, count=2147341558) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/Screen.cpp:1418                                                                                                                                          
1418            dest[i] = defaultChar;
[Current thread is 1 (Thread 0x728c6ad8c840 (LWP 21071))]
(gdb) bt4
executing: 'bt -full -frame-info source-and-location -past-entry on -entry-values both -frame-arguments all -past-main on'
#0  0x0000728c6f2970b3 in Konsole::Screen::fillWithDefaultChar (dest=<optimized out>, dest@entry=<optimized out>, count=2147341558, count@entry=<optimized out>) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/Screen.cpp:1418
1418            dest[i] = defaultChar;
        i = <optimized out>
#1  0x0000728c6f299686 in Konsole::ScreenWindow::fillUnusedArea (this=0x615a1371bc90, this@entry=0x615a1371bc90) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/ScreenWindow.cpp:94                                                                                                                             
94          Screen::fillWithDefaultChar(_windowBuffer + _windowBufferSize - charsToFill,charsToFill);
        screenEndLine = <optimized out>
        windowEndLine = <optimized out>
        unusedLines = <optimized out>
        charsToFill = <optimized out>
#2  0x0000728c6f299838 in Konsole::ScreenWindow::getImage (this=0x615a1371bc90, this@entry=<optimized out>) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/ScreenWindow.cpp:80                                                                                                                                  
80          fillUnusedArea();
        size = 8424
#3  0x0000728c6f2a7096 in Konsole::TerminalDisplay::processFilters (this=0x615a136457d0, this@entry=<optimized out>) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/TerminalDisplay.cpp:1069                                                                                                                    
1069        _filterChain->setImage( _screenWindow->getImage(),
        preUpdateHotSpots = {d = 0x728c6e93a5a0 <QRegion::shared_empty>}
        postUpdateHotSpots = {d = 0x8}
#4  0x0000728c6e0d944c in doActivate<false> (sender=0x615a1371bc90, sender@entry=<optimized out>, signal_index=4, signal_index@entry=<optimized out>, argv=0x7fff1d2bd0d0, argv@entry=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qobject.cpp:3898
3898                        callFunction(receiver, QMetaObject::InvokeMetaMethod, method_relative, argv);
        method_relative = <optimized out>
        callFunction = <optimized out>
        methodIndex = 0
        receiver = 0x615a136457d0
        td = <optimized out>
        receiverInSameThread = true
        senderData = {previous = 0x7fff1d2bd1a0, receiver = 0x615a136457d0, sender = 0x615a1371bc90, signal = 4}
        c = 0x615a1364d430
        connections = {d = 0x615a13728510}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 6
        signalVector = 0x615a13697f80
        currentThreadId = 0x728c6ad8c840
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#5  0x0000728c6e0d2ef1 in QMetaObject::activate (sender=0x615a1371bc90, sender@entry=0x615a1371bc90, m=0x728c6f2d7380 <Konsole::ScreenWindow::staticMetaObject>, m@entry=0x728c6f2d7380 <Konsole::ScreenWindow::staticMetaObject>, local_signal_index=1, local_signal_index@entry=1, argv=0x7fff1d2bd0d0, argv@entry=0x7fff1d2bd0d0) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qobject.cpp:3946
3946            doActivate<false>(sender, signal_index, argv);
        signal_index = <optimized out>
#6  0x0000728c6f2bb9df in Konsole::ScreenWindow::scrolled (this=0x615a1371bc90, this@entry=0x615a1371bc90, _t1=<optimized out>, _t1@entry=<optimized out>) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0_build/lib/moc_ScreenWindow.cpp:189                                                                        
189         QMetaObject::activate(this, &staticMetaObject, 1, _a);
        _a = {0x0, 0x7fff1d2bd0cc}
#7  0x0000728c6f299f28 in Konsole::ScreenWindow::scrollTo (this=0x615a1371bc90, this@entry=0x615a1371bc90, line=<optimized out>, line@entry=<optimized out>) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/ScreenWindow.cpp:233                                                                                
233         emit scrolled(_currentLine);
        maxCurrentLineNumber = <optimized out>
        delta = <optimized out>
#8  0x0000728c6f2ad0e5 in Konsole::TerminalDisplay::scrollBarPositionChanged (this=0x615a136457d0, this@entry=<optimized out>) at /usr/src/debug/x11-libs/qtermwidget-1.1.0/qtermwidget-1.1.0/lib/TerminalDisplay.cpp:1895                                                                                                          
1895      _screenWindow->scrollTo( _scrollBar->value() );
        atEndOfOutput = <optimized out>
#9  0x0000728c6e0d944c in doActivate<false> (sender=0x615a13849090, sender@entry=<optimized out>, signal_index=7, signal_index@entry=<optimized out>, argv=0x7fff1d2bd220, argv@entry=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qobject.cpp:3898
3898                        callFunction(receiver, QMetaObject::InvokeMetaMethod, method_relative, argv);
        method_relative = <optimized out>
        callFunction = <optimized out>
        methodIndex = 0
        receiver = 0x615a136457d0
        td = <optimized out>
        receiverInSameThread = true
        senderData = {previous = 0x0, receiver = 0x615a136457d0, sender = 0x615a13849090, signal = 7}
        c = 0x728c64005a50
        connections = {d = 0x615a13732500}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 1376
        signalVector = 0x615a13900200
        currentThreadId = 0x728c6ad8c840
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#10 0x0000728c6e0d2ef1 in QMetaObject::activate (sender=0x615a13849090, sender@entry=0x615a13849090, m=0x728c6f03c460 <QAbstractSlider::staticMetaObject>, m@entry=0x728c6f03c460 <QAbstractSlider::staticMetaObject>, local_signal_index=0, local_signal_index@entry=0, argv=0x7fff1d2bd220, argv@entry=0x7fff1d2bd220) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qobject.cpp:3946                                                                   
3946            doActivate<false>(sender, signal_index, argv);
        signal_index = <optimized out>
#11 0x0000728c6ebcb35c in QAbstractSlider::valueChanged (this=0x615a13849090, this@entry=0x615a13849090, _t1=<optimized out>, _t1@entry=1743012) at .moc/moc_qabstractslider.cpp:309                                                                                                                                                
309         QMetaObject::activate(this, &staticMetaObject, 0, _a);
        _a = {0x0, 0x7fff1d2bd21c}
#12 0x0000728c6ebcbf0a in QAbstractSlider::setValue (this=0x615a13849090, this@entry=0x615a13849090, value=1743012, value@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qabstractslider.cpp:548                                                              
548         emit valueChanged(value);
        d = <optimized out>
        event = {<QAccessibleEvent> = {_vptr.QAccessibleEvent = 0x728c6e93b548 <vtable for QAccessibleValueChangeEvent+16>, m_type = QAccessible::ValueChanged, m_object = 0x615a13849090, {m_child = -1, m_uniqueId = 4294967295}}, m_value = {d = {data = {c = -92 '\244', uc = 164 '\244', s = -26460, sc = -92 '\244', us = 39076, i = 1743012, u = 1743012, l = 1743012, ul = 1743012, b = 164, d = 8.6116234948904282e-318, f = 2.44248004e-39, real = 8.6116234948904282e-318, ll = 1743012, ull = 1743012, o = 0x1a98a4, ptr = 0x1a98a4, shared = 0x1a98a4}, type = 2, is_shared = 0, is_null = 0}}}                                                            
#13 0x0000728c6ebcc2a3 in QAbstractSlider::triggerAction (this=0x615a13849090, this@entry=0x615a13849090, action=QAbstractSlider::SliderMove, action@entry=QAbstractSlider::SliderMove) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qabstractslider.cpp:637
637         setValue(d->position);
        d = <optimized out>
#14 0x0000728c6ebcc475 in QAbstractSlider::setSliderPosition (this=0x615a13849090, this@entry=0x615a13849090, position=<optimized out>, position@entry=1743012) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qabstractslider.cpp:504
504             triggerAction(SliderMove);
        d = <optimized out>
#15 0x0000728c6ec8d410 in QScrollBar::mouseMoveEvent (this=0x615a13849090, this@entry=<optimized out>, e=0x7fff1d2bd8b0, e@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qscrollbar.cpp:649                                                                  
649             setSliderPosition(newPosition);
        click = <optimized out>
        newPosition = 1743012
        m = <optimized out>
        d = 0x615a137f8c00
        opt = {<QStyleOptionComplex> = {<QStyleOption> = {version = 1, type = 983041, state = {i = 73729}, direction = Qt::LeftToRight, rect = {x1 = 0, y1 = 0, x2 = 13, y2 = 948}, fontMetrics = {d = {d = 0x615a13848f10}}, palette = {d = 0x615a137c42e0, {data = {current_group = 0, resolve_mask = 0}, for_faster_swapping_dont_use = 0}}, styleObject = 0x615a13849090}, subControls = {i = 0}, activeSubControls = {i = 0}}, orientation = Qt::Vertical, minimum = 0, maximum = 14999961, tickPosition = QSlider::NoTicks, tickInterval = 0, upsideDown = false, sliderPosition = 1759772, sliderValue = 1759772, singleStep = 1, pageStep = 52, notchTarget = 0, dialWrapping = false}
#16 0x0000728c6eb04cc8 in QWidget::event (this=0x615a13849090, this@entry=<optimized out>, event=0x7fff1d2bd8b0, event@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:9033                                                                         
9033            actionEvent((QActionEvent*)event);
        d = <optimized out>
#17 0x0000728c6eab9c98 in QApplicationPrivate::notify_helper (this=0x615a13522400, this@entry=0x615a13522400, receiver=0x615a13849090, receiver@entry=0x615a13849090, e=0x7fff1d2bd8b0, e@entry=0x7fff1d2bd8b0) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3637
3637        consumed = receiver->event(e);
        consumed = false
        filtered = false
#18 0x0000728c6eac2d2a in QApplication::notify (this=<optimized out>, this@entry=<optimized out>, receiver=<optimized out>, receiver@entry=<optimized out>, e=<optimized out>, e@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3081
3081                        res = d->notify_helper(w, w == receiver ? mouse : &me);
        me = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x728c6e93d1a0 <vtable for QMouseEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e263b60 <qt_meta_stringdata_QEvent>, data = 0x728c6e2635a0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 5, posted = 0, spont = 1, m_accept = 1, reserved = 933}, modState = {i = 0}, ts = 6667540}, l = {xp = 21, yp = 134}, w = {xp = 23, yp = 136}, s = {xp = 2376, yp = 1307}, b = Qt::NoButton, mouseState = {i = 1}, caps = 0, velocity = {v = {0, 0}}}
        w = 0x615a13849090
        mouse = <optimized out>
        eventAccepted = <optimized out>
        relpos = {xp = 21, yp = 134}
        pw = <optimized out>
        d = <optimized out>
        res = false
#19 0x0000728c6e0a04a8 in QCoreApplication::notifyInternal2 (receiver=0x615a13849090, receiver@entry=<optimized out>, event=0x7fff1d2bd8b0, event@entry=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1064
1064        return self->notify(receiver, event);
        selfRequired = true
        result = false
        cbdata = {0x615a13849090, 0x7fff1d2bd8b0, 0x7fff1d2bd68f}
        d = <optimized out>
        threadData = 0x615a13519be0
        scopeLevelCounter = {threadData = 0x615a13519be0}
#20 0x0000728c6eac0b08 in QApplicationPrivate::sendMouseEvent (receiver=0x615a13849090, receiver@entry=0x615a13849090, event=0x7fff1d2bd8b0, event@entry=0x7fff1d2bd8b0, alienWidget=<optimized out>, alienWidget@entry=<optimized out>, nativeWidget=0x728c64003e00, nativeWidget@entry=<optimized out>, buttonDown=0x728c6f0659f0 <qt_button_down>, buttonDown@entry=0x728c6f0659f0 <qt_button_down>, lastMouseReceiver=@0x728c6f0659d0: {wp = {d = 0x615a13848fb0, value = 0x615a13849090}}, lastMouseReceiver@entry=<optimized out>, spontaneous=<optimized out>, spontaneous@entry=<optimized out>, onlyDispatchEnterLeave=<optimized out>, onlyDispatchEnterLeave@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:2619                         
2619                result = QApplication::sendSpontaneousEvent(receiver, event);
        receiverGuard = <optimized out>
        nativeGuard = <optimized out>
        alienGuard = <optimized out>
        activePopupWidget = <optimized out>
        graphicsWidget = false
        widgetUnderMouse = <optimized out>
        wasLeaveAfterRelease = <optimized out>
        result = true
#21 0x0000728c6eb21ef2 in QWidgetWindow::handleMouseEvent (this=0x615a1366bfd0, this@entry=0x615a1366bfd0, event=0x7fff1d2bdba0, event@entry=0x7fff1d2bdba0) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidgetwindow.cpp:683                                                     
683             QApplicationPrivate::sendMouseEvent(receiver, &translated, widget, m_widget,
        translated = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x728c6e93d1a0 <vtable for QMouseEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e263b60 <qt_meta_stringdata_QEvent>, data = 0x728c6e2635a0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 5, posted = 0, spont = 1, m_accept = 1, reserved = 933}, modState = {i = 0}, ts = 6667540}, l = {xp = 21, yp = 134}, w = {xp = 23, yp = 136}, s = {xp = 2376, yp = 1307}, b = Qt::NoButton, mouseState = {i = 1}, caps = 0, velocity = {v = {0, 0}}}
        contextMenuTrigger = QEvent::MouseButtonPress
        widget = <optimized out>
        mapped = {xp = 21, yp = 134}
        initialPress = <optimized out>
        receiver = 0x615a13849090
#22 0x0000728c6eb256e1 in QWidgetWindow::event (this=0x615a1366bfd0, this@entry=<optimized out>, event=0x7fff1d2bdba0, event@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidgetwindow.cpp:300                                                              
300             handleMouseEvent(static_cast<QMouseEvent *>(event));
No locals.
#23 0x0000728c6eab9c98 in QApplicationPrivate::notify_helper (this=<optimized out>, this@entry=<optimized out>, receiver=0x615a1366bfd0, receiver@entry=<optimized out>, e=0x7fff1d2bdba0, e@entry=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3637
3637        consumed = receiver->event(e);
        consumed = false
        filtered = false
#24 0x0000728c6e0a04a8 in QCoreApplication::notifyInternal2 (receiver=0x615a1366bfd0, receiver@entry=<optimized out>, event=0x7fff1d2bdba0, event@entry=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1064
1064        return self->notify(receiver, event);
        selfRequired = true
        result = false
        cbdata = {0x615a1366bfd0, 0x7fff1d2bdba0, 0x7fff1d2bda2f}
        d = <optimized out>
        threadData = 0x615a13519be0
        scopeLevelCounter = {threadData = 0x615a13519be0}
#25 0x0000728c6e4a40c7 in QGuiApplicationPrivate::processMouseEvent (e=0x615a138270f0, e@entry=<optimized out>) at /usr/src/debug/dev-qt/qtgui-5.15.5-r2/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:2282                                                                                                       
2282        QGuiApplication::sendSpontaneousEvent(window, &ev);
        type = QEvent::MouseMove
        button = Qt::NoButton
        window = 0x615a1366bfd0
        positionChanged = <optimized out>
        mouseMove = <optimized out>
        mousePress = <optimized out>
        localPoint = {xp = 23, yp = 136}
        globalPoint = {xp = 2376, yp = 1307}
        doubleClick = false
        ev = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x728c6e93d1a0 <vtable for QMouseEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e263b60 <qt_meta_stringdata_QEvent>, data = 0x728c6e2635a0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 5, posted = 0, spont = 1, m_accept = 1, reserved = 933}, modState = {i = 0}, ts = 6667540}, l = {xp = 23, yp = 136}, w = {xp = 23, yp = 136}, s = {xp = 2376, yp = 1307}, b = Qt::NoButton, mouseState = {i = 1}, caps = 0, velocity = {v = {0, 0}}}
#26 0x0000728c6e47dd0b in QWindowSystemInterface::sendWindowSystemEvents (flags={i = 36}, flags@entry={i = 36}) at /usr/src/debug/dev-qt/qtgui-5.15.5-r2/qtbase-everywhere-src-5.15.5/src/gui/kernel/qwindowsysteminterface.cpp:1169                                                                                                
1169                QGuiApplicationPrivate::processWindowSystemEvent(event);
        event = 0x615a138270f0
        nevents = 1
#27 0x0000728c6a95a40f in xcbSourceDispatch (source=<optimized out>, source@entry=<optimized out>) at /usr/src/debug/dev-qt/qtgui-5.15.5-r2/qtbase-everywhere-src-5.15.5/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105                                                                                                      
105         QWindowSystemInterface::sendWindowSystemEvents(flags);
        xcbEventSource = <optimized out>
        flags = {i = 36}
#28 0x0000728c6cf72e2d in g_main_dispatch (context=0x728c64005010, context@entry=<optimized out>) at ../glib-2.74.0/glib/gmain.c:3444
3444              need_destroy = !(* dispatch) (source, callback, user_data);
        dispatch = 0x728c6a95a3e0 <xcbSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        begin_time_nsec = 0
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = <optimized out>
        cb_data = <optimized out>
        need_destroy = <optimized out>
        source = 0x615a1363eed0
        current = 0x615a13907300
        i = 1
        __func__ = "g_main_dispatch"
#29 g_main_context_dispatch (context=0x728c64005010, context@entry=0x728c64005010) at ../glib-2.74.0/glib/gmain.c:4162
4162          g_main_dispatch (context);
No locals.
#30 0x0000728c6cf730d8 in g_main_context_iterate (context=0x728c64005010, context@entry=0x728c64005010, block=1, block@entry=1, dispatch=1, dispatch@entry=1, self=<optimized out>, self@entry=<optimized out>) at ../glib-2.74.0/glib/gmain.c:4238
4238        g_main_context_dispatch (context);
        max_priority = 2147483647
        timeout = 29468
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = 7
        fds = 0x615a13731a60
        begin_time_nsec = 0
#31 0x0000728c6cf731b2 in g_main_context_iteration (context=0x728c64005010, context@entry=<optimized out>, may_block=1, may_block@entry=<optimized out>) at ../glib-2.74.0/glib/gmain.c:4303                                                                                                                                        
4303      retval = g_main_context_iterate (context, may_block, TRUE, G_THREAD_SELF);
        retval = <optimized out>
#32 0x0000728c6e0facd7 in QEventDispatcherGlib::processEvents (this=0x615a135e57a0, this@entry=<optimized out>, flags=<optimized out>, flags@entry=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qeventdispatcher_glib.cpp:423
423         bool result = g_main_context_iteration(d->mainContext, canWait);
        d = 0x615a135b05b0
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#33 0x0000728c6e09e91b in QEventLoop::exec (this=0x7fff1d2bdf40, this@entry=0x7fff1d2bdf40, flags={i = 36}, flags@entry={i = 0}) at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/global/qflags.h:69                                                                         
69          Q_DECL_CONSTEXPR inline operator uint() const noexcept { return uint(i); }
        d = 0x615a13722db0
        threadData = <optimized out>
        locker = {val = 107039499098648}
        ref = <optimized out>
        app = <optimized out>
#34 0x0000728c6e0a7894 in QCoreApplication::exec () at /usr/src/debug/dev-qt/qtcore-5.15.5-r3/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/global/qflags.h:121                                                                                                                                                     
121         Q_DECL_CONSTEXPR inline QFlags(Enum flags) noexcept : i(Int(flags)) {}
        threadData = 0x615a13519be0
        eventLoop = {<QObject> = {_vptr.QObject = 0x728c6e37b8e8 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e268220 <qt_meta_stringdata_QObject>, data = 0x728c6e268100 <qt_meta_data_QObject>, static_metacall = 0x728c6e0d7760 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x615a13722db0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e26b1c0 <qt_meta_stringdata_Qt>, data = 0x728c6e268340 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x728c6e373160 <QObject::staticMetaObject>}, stringdata = 0x728c6e262a00 <qt_meta_stringdata_QEventLoop>, data = 0x728c6e2629a0 <qt_meta_data_QEventLoop>, static_metacall = 0x728c6e09e540 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}                                                                                                             
        returnCode = <optimized out>
#35 0x0000728c6e498129 in QGuiApplication::exec () at /usr/src/debug/dev-qt/qtgui-5.15.5-r2/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:1867
1867        return QCoreApplication::exec();
No locals.
#36 0x0000728c6eab9bec in QApplication::exec () at /usr/src/debug/dev-qt/qtwidgets-5.15.5-r1/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:2829
2829        return QGuiApplication::exec();
No locals.
#37 0x0000615a11b8939d in main (argc=<optimized out>, argc@entry=1, argv=0x7fff1d2be1f8, argv@entry=0x7fff1d2be1f8) at /usr/src/debug/x11-terms/qterminal-1.1.0/qterminal-1.1.0/src/main.cpp:204                                                                                                                                    
204         int ret = app->exec();
        app = 0x615a1351ce40
        workdir = {d = 0x615a13640ae0}
        shell_command = {d = 0x728c6e184a60 <QArrayData::shared_null>}
        dropMode = false
        settings = {<QObject> = {_vptr.QObject = 0x728c6e379ed0 <vtable for QSettings+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e268220 <qt_meta_stringdata_QObject>, data = 0x728c6e268100 <qt_meta_data_QObject>, static_metacall = 0x728c6e0d7760 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x728c64001a00}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e26b1c0 <qt_meta_stringdata_Qt>, data = 0x728c6e268340 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x728c6e373160 <QObject::staticMetaObject>}, stringdata = 0x728c6e25a300 <qt_meta_stringdata_QSettings>, data = 0x728c6e25a1c0 <qt_meta_data_QSettings>, static_metacall = 0x728c6e028c90 <QSettings::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}                                                                                                                  
        customStyle = {d_ptr = {d = 0x615a13524430}}
        qtTranslator = {<QObject> = {_vptr.QObject = 0x728c6e37c3b0 <vtable for QTranslator+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e268220 <qt_meta_stringdata_QObject>, data = 0x728c6e268100 <qt_meta_data_QObject>, static_metacall = 0x728c6e0d7760 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x615a13631de0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e26b1c0 <qt_meta_stringdata_Qt>, data = 0x728c6e268340 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x728c6e373160 <QObject::staticMetaObject>}, stringdata = 0x728c6e277c20 <qt_meta_stringdata_QTranslator>, data = 0x728c6e277be0 <qt_meta_data_QTranslator>, static_metacall = 0x728c6e0df4d0 <QTranslator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}                                                                                                      
        translator = {<QObject> = {_vptr.QObject = 0x728c6e37c3b0 <vtable for QTranslator+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e268220 <qt_meta_stringdata_QObject>, data = 0x728c6e268100 <qt_meta_data_QObject>, static_metacall = 0x728c6e0d7760 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x615a135840b0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x728c6e26b1c0 <qt_meta_stringdata_Qt>, data = 0x728c6e268340 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x728c6e373160 <QObject::staticMetaObject>}, stringdata = 0x728c6e277c20 <qt_meta_stringdata_QTranslator>, data = 0x728c6e277be0 <qt_meta_data_QTranslator>, static_metacall = 0x728c6e0df4d0 <QTranslator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}                                                                                                        
        fname = {d = 0x615a13640c10}
        initConfig = {m_currentDirectory = {d = 0x728c6e184a60 <QArrayData::shared_null>}, m_workingDirectory = {d = 0x615a13640ae0}, m_shell = {d = 0x728c6e184a60 <QArrayData::shared_null>}}                                                                                                                                     
        ret = <optimized out>
#38 0x0000728c6d9fc386 in __libc_start_call_main (main=0x615a11b88e90 <main(int, char**)>, main@entry=0x615a11b88e90 <main(int, char**)>, argc=1, argc@entry=1, argv=0x7fff1d2be1f8, argv@entry=0x7fff1d2be1f8) at ../sysdeps/nptl/libc_start_call_main.h:58                                                                        
58            result = main (argc, argv, __environ MAIN_AUXVEC_PARAM);
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140733682803192, 1782649141905959065, 1, 0, 107039472595224, 125947486564352, 1782649141887084697, 169971970746067097}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1}}}
        not_first_call = <optimized out>
#39 0x0000728c6d9fc447 in __libc_start_main_impl (main=0x615a11b88e90 <main(int, char**)>, main@entry=<optimized out>, argc=1, argc@entry=<optimized out>, argv=0x7fff1d2be1f8, argv@entry=<optimized out>, init=<optimized out>, init@entry=<optimized out>, fini=<optimized out>, fini@entry=<optimized out>, rtld_fini=<optimized out>, rtld_fini@entry=<optimized out>, stack_end=<optimized out>, stack_end@entry=<optimized out>) at ../csu/libc-start.c:381
381       __libc_start_call_main (main, argc, argv MAIN_AUXVEC_PARAM);
No locals.
#40 0x0000615a11b898a1 in _start ()
No symbol table info available.