[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#908095: Buster: Kwrite crashes while opening a file



Hello,
just found your report and tried to reproduce the crash.

First I assume you copied this text from the crash reporting window?
This information would be way more readable if you would install
the debug symbols for the executable and all the shared objects in
the crashing stack.
Like described here: https://wiki.debian.org/HowToGetABacktrace

In your case this would be:
    kwrite-dbgsym libqt5core5a-dbgsym libqt5gui5-dbgsym
    libqt5core5a-dbgsym libqt5widgets5-dbgsym
    libkf5widgetsaddons5-dbgsym libkf5configwidgets5-dbgsym
    libkf5texteditor5-dbgsym libkf5parts5-dbgsym

Then you could press the reload button in the crash reporting window
and it should give a better readable stack.
(That way more likely to attract some maintainer.)

Found it still interesting and came just to the location below,
with the least 3 bytes of each frame matching up to your stack trace,
except the last frame.

But this still only if I used some unicode test files.
I used https://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html

I think the crash happens in the lambda function appendRun,
in case continuationFrom gets a value different to -1.

Unfortunately my test file does not get me that far to the crash.
Therefore I think your file contains a really special case of some
direction changes. Therefore you probably can provide that file or
a copy stripped down to the least causing kwrite to crash?


Kind regards,
Bernhard



(gdb) list
363
364             auto appendRun = [&](int runEnd) {
365                 if (runEnd < runStart)
366                     return;
367                 bool isContinuation = false;
368                 if (continuationFrom != -1) {
369                     runs[continuationFrom].continuation = runs.size();
370                     isContinuation = true;
371                 } else if (lastRunWithContent != -1 && level == runs.at(lastRunWithContent).level) {
372                     runs[lastRunWithContent].continuation = runs.size();
373                     isContinuation = true;
374                 }
375                 if (runHasContent)
376                     lastRunWithContent = runs.size();
377                 BIDI_DEBUG() << "   appending run start/end" << runStart << runEnd << "level" << level;
378                 runs.append({ runStart, runEnd, -1, level, isContinuation, runHasContent });
379                 runHasContent = false;
380                 runStart = runEnd + 1;
381                 continuationFrom = -1;
382             };



Below we are not yet there, unfortunately we jump here
to 0x7ffff6d45400 instead to continue to 0x00007ffff6d45376:

Thread 1 "kwrite" hit Breakpoint 12, 0x00007ffff6d45363 in (anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const (__closure=__closure@entry=0x7fffffff7f80, runEnd=runEnd@entry=85) at text/qtextengine.cpp:368
368                 if (continuationFrom != -1) {
1: x/i $pc
=> 0x7ffff6d45363 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+51>:     je     0x7ffff6d45400 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+208>
(gdb) bt
#0  0x00007ffff6d45363 in (anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const (__closure=__closure@entry=0x7fffffff7f80, runEnd=runEnd@entry=85) at text/qtextengine.cpp:368
#1  0x00007ffff6d4e05f in (anonymous namespace)::QBidiAlgorithm::generateDirectionalRuns (runs=..., isolatePairs=..., this=0x7fffffff7f60) at text/qtextengine.cpp:516
#2  (anonymous namespace)::QBidiAlgorithm::resolveExplicitLevels (runs=..., this=0x7fffffff7f60) at text/qtextengine.cpp:533
#3  (anonymous namespace)::QBidiAlgorithm::process (this=0x7fffffff7f60) at text/qtextengine.cpp:1065
#4  QTextEngine::itemize (this=0x555555b28990) at text/qtextengine.cpp:2031
#5  0x00007ffff6d5699c in QTextLayout::beginLayout (this=this@entry=0x5555563756f0) at text/qtextlayout.cpp:648
#6  0x00007ffff7d8d3c6 in KateRenderer::layoutLine (this=0x5555561c2310, lineLayout=..., maxwidth=945, cacheLayout=<optimized out>) at ./src/render/katerenderer.cpp:1014
#7  0x00007ffff7d92881 in KateLayoutCache::line (this=this@entry=0x555555973140, realLine=realLine@entry=5, virtualLine=virtualLine@entry=5) at /usr/include/c++/8/bits/atomic_base.h:295
#8  0x00007ffff7d93b21 in KateLayoutCache::updateViewCache (this=this@entry=0x555555973140, startPos=..., newViewLineCount=newViewLineCount@entry=47, viewLinesScrolled=viewLinesScrolled@entry=0) at ./src/render/katelayoutcache.cpp:282
#9  0x00007ffff7dd9f2a in KateViewInternal::doUpdateView (this=this@entry=0x555555a931c0, changed=<optimized out>, changed@entry=true, viewLinesScrolled=viewLinesScrolled@entry=0) at ./src/include/ktexteditor/cursor.h:98
#10 0x00007ffff7dda214 in KateViewInternal::updateView (this=0x555555a931c0, changed=changed@entry=true, viewLinesScrolled=viewLinesScrolled@entry=0) at ./src/view/kateviewinternal.cpp:609
#11 0x00007ffff7dc4196 in KTextEditor::ViewPrivate::updateView (this=0x555555994ba0, changed=changed@entry=true) at ./src/view/kateview.cpp:2042
#12 0x00007ffff7dd339f in KTextEditor::ViewPrivate::updateDocumentConfig (this=<optimized out>) at ./src/view/kateview.cpp:1900
#13 0x00007ffff7d3672c in KTextEditor::DocumentPrivate::updateConfig (this=0x55555613c660) at ./src/document/katedocument.cpp:4422
#14 0x00007ffff7e18dbd in KateDocumentConfig::updateConfig (this=0x55555594f290) at ./src/utils/kateconfig.cpp:431
#15 0x00007ffff7e1272b in KateConfig::configEnd (this=0x55555594f290) at ./src/utils/kateconfig.cpp:67
#16 KateDocumentConfig::setEncoding (this=this@entry=0x55555594f290, encoding=...) at ./src/utils/kateconfig.cpp:937
#17 0x00007ffff7d51afe in KateBuffer::openFile (this=this@entry=0x555555cb76f0, m_file=..., enforceTextCodec=enforceTextCodec@entry=false) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:255
#18 0x00007ffff7d48e2f in KTextEditor::DocumentPrivate::openFile (this=0x55555613c660) at ./src/document/katedocument.cpp:2253
#19 0x00007ffff7b9ca21 in KParts::ReadOnlyPartPrivate::openLocalFile (this=this@entry=0x55555594c390) at ./src/readonlypart.cpp:190
#20 0x00007ffff7b9d9b6 in KParts::ReadOnlyPart::openUrl (this=this@entry=0x55555613c660, url=...) at ./src/readonlypart.cpp:153
#21 0x00007ffff7d3d4d1 in KTextEditor::DocumentPrivate::openUrl (this=0x55555613c660, url=...) at ./src/document/katedocument.cpp:2647
#22 0x0000555555560dea in KWrite::loadURL (this=this@entry=0x555555d0a180, url=...) at ./kwrite/kwrite.cpp:203
#23 0x0000555555563148 in KWrite::slotOpen (this=0x555555d0a180, url=...) at ./kwrite/kwrite.cpp:267
#24 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3771
#25 0x00007ffff68fcdd7 in QMetaObject::activate (sender=sender@entry=0x555556378a80, m=m@entry=0x7ffff7a46e60 <KRecentFilesAction::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd210) at kernel/qobject.cpp:3633
#26 0x00007ffff7a26d22 in KRecentFilesAction::urlSelected (this=this@entry=0x555556378a80, _t1=...) at ./obj-x86_64-linux-gnu/src/KF5ConfigWidgets_autogen/include/moc_krecentfilesaction.cpp:205
#27 0x00007ffff7a275d5 in KRecentFilesActionPrivate::_k_urlSelected (this=0x55555619fcc0, action=0x5555565c70f0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:284
#28 0x00007ffff7a27a27 in KRecentFilesAction::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./src/krecentfilesaction.h:53
#29 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3771
#30 0x00007ffff68fcdd7 in QMetaObject::activate (sender=sender@entry=0x555556378a80, m=m@entry=0x7ffff7995000 <KSelectAction::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd3d0) at kernel/qobject.cpp:3633
#31 0x00007ffff78f54bf in KSelectAction::triggered (this=this@entry=0x555556378a80, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/src/KF5WidgetsAddons_autogen/include/moc_kselectaction.cpp:287
#32 0x00007ffff78f6cbe in KSelectAction::actionTriggered (this=0x555556378a80, action=<optimized out>) at ./src/kselectaction.cpp:345
#33 0x00007ffff68fc910 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd560, r=0x555556378a80, this=0x555556378a20) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376
#34 QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3754
#35 0x00007ffff68fcdd7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7ffff76f5920 <QActionGroup::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd560) at kernel/qobject.cpp:3633
#36 0x00007ffff722968f in QActionGroup::triggered (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qactiongroup.cpp:242
#37 0x00007ffff7229878 in QActionGroupPrivate::_q_actionTriggered (this=<optimized out>) at kernel/qactiongroup.cpp:91
#38 0x00007ffff7229ca1 in QActionGroup::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qglobal.h:1038
#39 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3771
#40 0x00007ffff68fcdd7 in QMetaObject::activate (sender=sender@entry=0x5555565c70f0, m=m@entry=0x7ffff76f5840 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffd6e0) at kernel/qobject.cpp:3633
#41 0x00007ffff7225ef2 in QAction::triggered (this=this@entry=0x5555565c70f0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#42 0x00007ffff7228500 in QAction::activate (this=0x5555565c70f0, event=<optimized out>) at kernel/qaction.cpp:1167
#43 0x00007ffff7398e7c in QMenuPrivate::activateCausedStack (this=this@entry=0x55555619f640, causedStack=..., action=action@entry=0x5555565c70f0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1371
#44 0x00007ffff73a0450 in QMenuPrivate::activateAction (this=this@entry=0x55555619f640, action=action@entry=0x5555565c70f0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1448
#45 0x00007ffff73a147b in QMenu::mouseReleaseEvent (this=<optimized out>, e=0x7fffffffdcf0) at widgets/qmenu.cpp:2942
#46 0x00007ffff726a7d8 in QWidget::event (this=this@entry=0x555556379490, event=event@entry=0x7fffffffdcf0) at kernel/qwidget.cpp:8919
#47 0x00007ffff73a3b0b in QMenu::event (this=0x555556379490, e=0x7fffffffdcf0) at widgets/qmenu.cpp:3064
#48 0x00007ffff722c4a1 in QApplicationPrivate::notify_helper (this=this@entry=0x55555578d8d0, receiver=receiver@entry=0x555556379490, e=e@entry=0x7fffffffdcf0) at kernel/qapplication.cpp:3727
#49 0x00007ffff7233d28 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3203
#50 0x00007ffff68d3579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307
#51 0x00007ffff7233029 in QCoreApplication::sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#52 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x555556379490, event=event@entry=0x7fffffffdcf0, alienWidget=0x0, alienWidget@entry=0x555556379490, nativeWidget=0x555556379490, buttonDown=buttonDown@entry=0x7ffff7724870 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:2695
#53 0x00007ffff72856c3 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at kernel/qwidgetwindow.cpp:555
#54 0x00007ffff7287e8e in QWidgetWindow::event (this=0x555555f1c7e0, event=0x7fffffffe0f0) at kernel/qwidgetwindow.cpp:280
#55 0x00007ffff722c4a1 in QApplicationPrivate::notify_helper (this=this@entry=0x55555578d8d0, receiver=receiver@entry=0x555555f1c7e0, e=e@entry=0x7fffffffe0f0) at kernel/qapplication.cpp:3727
#56 0x00007ffff7233ae0 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3486
#57 0x00007ffff68d3579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307
#58 0x00007ffff6c7253b in QCoreApplication::sendSpontaneousEvent (event=0x7fffffffe0f0, receiver=0x555555f1c7e0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#59 QGuiApplicationPrivate::processMouseEvent (e=0x555555aa33a0) at kernel/qguiapplication.cpp:2081
#60 0x00007ffff6c74435 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x555555aa33a0) at kernel/qguiapplication.cpp:1816
#61 0x00007ffff6c4eb6b in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1032
#62 0x00007fffef204e5b in QPAEventDispatcherGlib::processEvents (this=0x5555557cd0b0, flags=...) at qeventdispatcher_glib.cpp:70
#63 0x00007ffff68d224b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#64 0x00007ffff68da3c2 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#65 0x000055555555ed6d in main (argc=<optimized out>, argv=<optimized out>) at ./kwrite/main.cpp:294




Thread 1 (Thread 0x7f16e4810500 (LWP 9355)):
[KCrash Handler]
#6  0x00007f16ec106376 in ?? () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#7  0x00007f16ec10f05f in QTextEngine::itemize() const () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#8  0x00007f16ec11799c in QTextLayout::beginLayout() () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#9  0x00007f16ed14e3c6 in ?? () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#10 0x00007f16ed153881 in ?? () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#11 0x00007f16ed154b21 in ?? () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#12 0x00007f16ed19af2a in ?? () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#13 0x00007f16ed19b214 in ?? () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#14 0x00007f16ed185196 in KTextEditor::ViewPrivate::updateView(bool) () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#15 0x00007f16ed0f772c in KTextEditor::DocumentPrivate::updateConfig() () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#16 0x00007f16ed1d9dbd in KateDocumentConfig::updateConfig() () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#17 0x00007f16ed1d372b in KateDocumentConfig::setEncoding(QString const&) () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#18 0x00007f16ed112afe in KateBuffer::openFile(QString const&, bool) () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#19 0x00007f16ed109e2f in KTextEditor::DocumentPrivate::openFile() () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#20 0x00007f16ecf5da21 in ?? () from /lib/x86_64-linux-gnu/libKF5Parts.so.5
#21 0x00007f16ecf5e9b6 in KParts::ReadOnlyPart::openUrl(QUrl const&) () from /lib/x86_64-linux-gnu/libKF5Parts.so.5
#22 0x00007f16ed0fe4d1 in KTextEditor::DocumentPrivate::openUrl(QUrl const&) () from /lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#23 0x00005590a44f0dea in ?? ()
#24 0x00005590a44f3148 in ?? ()
#25 0x00005590a44f32e2 in ?? ()
#26 0x00007f16ebcbd7bb in QMetaObject::activate(QObject*, int, int, void**) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f16ec5e6ef2 in QAction::triggered(bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f16ec5e9500 in QAction::activate(QAction::ActionEvent) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007f16ec6d4d1d in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007f16ec6d4f55 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007f16ec7becaa in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f16ec62b7d8 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f16ec7bed53 in QToolButton::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f16ec5ed4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f16ec5f4d28 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f16ebc94579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007f16ec5f4029 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f16ec646304 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f16ec648e8e in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007f16ec5ed4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007f16ec5f4ae0 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007f16ebc94579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007f16ec03353b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#44 0x00007f16ec035435 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#45 0x00007f16ec00fb6b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#46 0x00007f16e45b9e5b in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#47 0x00007f16ebc9324b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007f16ebc9b3c2 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#49 0x00005590a44eed6d in main ()







apt update

apt install xserver-xorg sddm openbox xterm tint2 mc devscripts dpkg-dev gdb kwrite kwrite-dbgsym libqt5core5a-dbgsym libqt5gui5-dbgsym libqt5core5a-dbgsym libqt5widgets5-dbgsym libkf5widgetsaddons5-dbgsym libkf5configwidgets5-dbgsym libkf5texteditor5-dbgsym libkf5parts5-dbgsym

systemctl start sddm


mkdir libqt5gui5/orig -p
cd    libqt5gui5/orig
apt source libqt5gui5
cd ..


mkdir qtbase-opensource-src/orig -p
cd    qtbase-opensource-src/orig
apt source qtbase-opensource-src
cd ..


wget https://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html


export DISPLAY=:0

gdb -q --args kwrite

directory /home/benutzer/libqt5gui5/orig/qtbase-opensource-src-5.11.1+dfsg/src/gui
directory /home/benutzer/qtbase-opensource-src/orig/qtbase-opensource-src-5.11.1+dfsg/include/QtCore
set pagination 0
set width 0
display/i $pc
b KTextEditor::ViewPrivate::updateView

run

b QTextEngine::itemize
cont
----

b KateRenderer::layoutLine




(gdb) bt
#0  0x00007ffff6d4d3b0 in QTextEngine::itemize() const () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#1  0x00007ffff6d5699c in QTextLayout::beginLayout() () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#2  0x00007ffff7d8d3c6 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#3  0x00007ffff7d92881 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#4  0x00007ffff7d9354a in ?? () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#5  0x00007ffff7dd9f2a in ?? () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#6  0x00007ffff7dda214 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#7  0x00007ffff7dc4196 in KTextEditor::ViewPrivate::updateView(bool) () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#8  0x00007ffff7d3672c in KTextEditor::DocumentPrivate::updateConfig() () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#9  0x00007ffff7e18dbd in KateDocumentConfig::updateConfig() () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#10 0x00007ffff7e1272b in KateDocumentConfig::setEncoding(QString const&) () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#11 0x00007ffff7d51afe in KateBuffer::openFile(QString const&, bool) () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#12 0x00007ffff7d48e2f in KTextEditor::DocumentPrivate::openFile() () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#13 0x00007ffff7b9ca21 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Parts.so.5
#14 0x00007ffff7b9d9b6 in KParts::ReadOnlyPart::openUrl(QUrl const&) () from /usr/lib/x86_64-linux-gnu/libKF5Parts.so.5
#15 0x00007ffff7d3d4d1 in KTextEditor::DocumentPrivate::openUrl(QUrl const&) () from /usr/lib/x86_64-linux-gnu/libKF5TextEditor.so.5
#16 0x0000555555560dea in ?? ()
#17 0x0000555555563148 in ?? ()
#18 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff7a26d22 in KRecentFilesAction::urlSelected(QUrl const&) () from /usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5
#20 0x00007ffff7a275d5 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5
#21 0x00007ffff7a27a27 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5
#22 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff78f54bf in KSelectAction::triggered(QAction*) () from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#24 0x00007ffff78f6cbe in KSelectAction::actionTriggered(QAction*) () from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#25 0x00007ffff68fc910 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff722968f in QActionGroup::triggered(QAction*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff7229ca1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007ffff7225ef2 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff7228500 in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff7398e7c in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff73a0450 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff73a147b in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff726a7d8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff73a3b0b in QMenu::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff722c4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007ffff7233d28 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff68d3579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#39 0x00007ffff7233029 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff72856c3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff7287e8e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff722c4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007ffff7233ae0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff68d3579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007ffff6c7253b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#46 0x00007ffff6c74435 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#47 0x00007ffff6c4eb6b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#48 0x00007fffef204e5b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#49 0x00007ffff68d224b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x00007ffff68da3c2 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x000055555555ed6d in main ()

With debug symbols:



Thread 1 "kwrite" hit Breakpoint 12, 0x00007ffff6d45363 in (anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const (__closure=__closure@entry=0x7fffffff7f80, runEnd=runEnd@entry=85) at text/qtextengine.cpp:368
368                 if (continuationFrom != -1) {
1: x/i $pc
=> 0x7ffff6d45363 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+51>:     je     0x7ffff6d45400 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+208>
(gdb) bt
#0  0x00007ffff6d45363 in (anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const (__closure=__closure@entry=0x7fffffff7f80, runEnd=runEnd@entry=85) at text/qtextengine.cpp:368
#1  0x00007ffff6d4e05f in (anonymous namespace)::QBidiAlgorithm::generateDirectionalRuns (runs=..., isolatePairs=..., this=0x7fffffff7f60) at text/qtextengine.cpp:516
#2  (anonymous namespace)::QBidiAlgorithm::resolveExplicitLevels (runs=..., this=0x7fffffff7f60) at text/qtextengine.cpp:533
#3  (anonymous namespace)::QBidiAlgorithm::process (this=0x7fffffff7f60) at text/qtextengine.cpp:1065
#4  QTextEngine::itemize (this=0x555555b28990) at text/qtextengine.cpp:2031
#5  0x00007ffff6d5699c in QTextLayout::beginLayout (this=this@entry=0x5555563756f0) at text/qtextlayout.cpp:648
#6  0x00007ffff7d8d3c6 in KateRenderer::layoutLine (this=0x5555561c2310, lineLayout=..., maxwidth=945, cacheLayout=<optimized out>) at ./src/render/katerenderer.cpp:1014
#7  0x00007ffff7d92881 in KateLayoutCache::line (this=this@entry=0x555555973140, realLine=realLine@entry=5, virtualLine=virtualLine@entry=5) at /usr/include/c++/8/bits/atomic_base.h:295
#8  0x00007ffff7d93b21 in KateLayoutCache::updateViewCache (this=this@entry=0x555555973140, startPos=..., newViewLineCount=newViewLineCount@entry=47, viewLinesScrolled=viewLinesScrolled@entry=0) at ./src/render/katelayoutcache.cpp:282
#9  0x00007ffff7dd9f2a in KateViewInternal::doUpdateView (this=this@entry=0x555555a931c0, changed=<optimized out>, changed@entry=true, viewLinesScrolled=viewLinesScrolled@entry=0) at ./src/include/ktexteditor/cursor.h:98
#10 0x00007ffff7dda214 in KateViewInternal::updateView (this=0x555555a931c0, changed=changed@entry=true, viewLinesScrolled=viewLinesScrolled@entry=0) at ./src/view/kateviewinternal.cpp:609
#11 0x00007ffff7dc4196 in KTextEditor::ViewPrivate::updateView (this=0x555555994ba0, changed=changed@entry=true) at ./src/view/kateview.cpp:2042
#12 0x00007ffff7dd339f in KTextEditor::ViewPrivate::updateDocumentConfig (this=<optimized out>) at ./src/view/kateview.cpp:1900
#13 0x00007ffff7d3672c in KTextEditor::DocumentPrivate::updateConfig (this=0x55555613c660) at ./src/document/katedocument.cpp:4422
#14 0x00007ffff7e18dbd in KateDocumentConfig::updateConfig (this=0x55555594f290) at ./src/utils/kateconfig.cpp:431
#15 0x00007ffff7e1272b in KateConfig::configEnd (this=0x55555594f290) at ./src/utils/kateconfig.cpp:67
#16 KateDocumentConfig::setEncoding (this=this@entry=0x55555594f290, encoding=...) at ./src/utils/kateconfig.cpp:937
#17 0x00007ffff7d51afe in KateBuffer::openFile (this=this@entry=0x555555cb76f0, m_file=..., enforceTextCodec=enforceTextCodec@entry=false) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:255
#18 0x00007ffff7d48e2f in KTextEditor::DocumentPrivate::openFile (this=0x55555613c660) at ./src/document/katedocument.cpp:2253
#19 0x00007ffff7b9ca21 in KParts::ReadOnlyPartPrivate::openLocalFile (this=this@entry=0x55555594c390) at ./src/readonlypart.cpp:190
#20 0x00007ffff7b9d9b6 in KParts::ReadOnlyPart::openUrl (this=this@entry=0x55555613c660, url=...) at ./src/readonlypart.cpp:153
#21 0x00007ffff7d3d4d1 in KTextEditor::DocumentPrivate::openUrl (this=0x55555613c660, url=...) at ./src/document/katedocument.cpp:2647
#22 0x0000555555560dea in KWrite::loadURL (this=this@entry=0x555555d0a180, url=...) at ./kwrite/kwrite.cpp:203
#23 0x0000555555563148 in KWrite::slotOpen (this=0x555555d0a180, url=...) at ./kwrite/kwrite.cpp:267
#24 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3771
#25 0x00007ffff68fcdd7 in QMetaObject::activate (sender=sender@entry=0x555556378a80, m=m@entry=0x7ffff7a46e60 <KRecentFilesAction::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd210) at kernel/qobject.cpp:3633
#26 0x00007ffff7a26d22 in KRecentFilesAction::urlSelected (this=this@entry=0x555556378a80, _t1=...) at ./obj-x86_64-linux-gnu/src/KF5ConfigWidgets_autogen/include/moc_krecentfilesaction.cpp:205
#27 0x00007ffff7a275d5 in KRecentFilesActionPrivate::_k_urlSelected (this=0x55555619fcc0, action=0x5555565c70f0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:284
#28 0x00007ffff7a27a27 in KRecentFilesAction::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./src/krecentfilesaction.h:53
#29 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3771
#30 0x00007ffff68fcdd7 in QMetaObject::activate (sender=sender@entry=0x555556378a80, m=m@entry=0x7ffff7995000 <KSelectAction::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd3d0) at kernel/qobject.cpp:3633
#31 0x00007ffff78f54bf in KSelectAction::triggered (this=this@entry=0x555556378a80, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/src/KF5WidgetsAddons_autogen/include/moc_kselectaction.cpp:287
#32 0x00007ffff78f6cbe in KSelectAction::actionTriggered (this=0x555556378a80, action=<optimized out>) at ./src/kselectaction.cpp:345
#33 0x00007ffff68fc910 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd560, r=0x555556378a80, this=0x555556378a20) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376
#34 QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3754
#35 0x00007ffff68fcdd7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7ffff76f5920 <QActionGroup::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd560) at kernel/qobject.cpp:3633
#36 0x00007ffff722968f in QActionGroup::triggered (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qactiongroup.cpp:242
#37 0x00007ffff7229878 in QActionGroupPrivate::_q_actionTriggered (this=<optimized out>) at kernel/qactiongroup.cpp:91
#38 0x00007ffff7229ca1 in QActionGroup::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qglobal.h:1038
#39 0x00007ffff68fc7bb in QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3771
#40 0x00007ffff68fcdd7 in QMetaObject::activate (sender=sender@entry=0x5555565c70f0, m=m@entry=0x7ffff76f5840 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffd6e0) at kernel/qobject.cpp:3633
#41 0x00007ffff7225ef2 in QAction::triggered (this=this@entry=0x5555565c70f0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#42 0x00007ffff7228500 in QAction::activate (this=0x5555565c70f0, event=<optimized out>) at kernel/qaction.cpp:1167
#43 0x00007ffff7398e7c in QMenuPrivate::activateCausedStack (this=this@entry=0x55555619f640, causedStack=..., action=action@entry=0x5555565c70f0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1371
#44 0x00007ffff73a0450 in QMenuPrivate::activateAction (this=this@entry=0x55555619f640, action=action@entry=0x5555565c70f0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1448
#45 0x00007ffff73a147b in QMenu::mouseReleaseEvent (this=<optimized out>, e=0x7fffffffdcf0) at widgets/qmenu.cpp:2942
#46 0x00007ffff726a7d8 in QWidget::event (this=this@entry=0x555556379490, event=event@entry=0x7fffffffdcf0) at kernel/qwidget.cpp:8919
#47 0x00007ffff73a3b0b in QMenu::event (this=0x555556379490, e=0x7fffffffdcf0) at widgets/qmenu.cpp:3064
#48 0x00007ffff722c4a1 in QApplicationPrivate::notify_helper (this=this@entry=0x55555578d8d0, receiver=receiver@entry=0x555556379490, e=e@entry=0x7fffffffdcf0) at kernel/qapplication.cpp:3727
#49 0x00007ffff7233d28 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3203
#50 0x00007ffff68d3579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307
#51 0x00007ffff7233029 in QCoreApplication::sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#52 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x555556379490, event=event@entry=0x7fffffffdcf0, alienWidget=0x0, alienWidget@entry=0x555556379490, nativeWidget=0x555556379490, buttonDown=buttonDown@entry=0x7ffff7724870 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:2695
#53 0x00007ffff72856c3 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at kernel/qwidgetwindow.cpp:555
#54 0x00007ffff7287e8e in QWidgetWindow::event (this=0x555555f1c7e0, event=0x7fffffffe0f0) at kernel/qwidgetwindow.cpp:280
#55 0x00007ffff722c4a1 in QApplicationPrivate::notify_helper (this=this@entry=0x55555578d8d0, receiver=receiver@entry=0x555555f1c7e0, e=e@entry=0x7fffffffe0f0) at kernel/qapplication.cpp:3727
#56 0x00007ffff7233ae0 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3486
#57 0x00007ffff68d3579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307
#58 0x00007ffff6c7253b in QCoreApplication::sendSpontaneousEvent (event=0x7fffffffe0f0, receiver=0x555555f1c7e0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#59 QGuiApplicationPrivate::processMouseEvent (e=0x555555aa33a0) at kernel/qguiapplication.cpp:2081
#60 0x00007ffff6c74435 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x555555aa33a0) at kernel/qguiapplication.cpp:1816
#61 0x00007ffff6c4eb6b in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1032
#62 0x00007fffef204e5b in QPAEventDispatcherGlib::processEvents (this=0x5555557cd0b0, flags=...) at qeventdispatcher_glib.cpp:70
#63 0x00007ffff68d224b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#64 0x00007ffff68da3c2 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#65 0x000055555555ed6d in main (argc=<optimized out>, argv=<optimized out>) at ./kwrite/main.cpp:294





(gdb) disassemble 0x00007ffff6d45330,0x00007ffff6d4537d
Dump of assembler code from 0x7ffff6d45330 to 0x7ffff6d4537d:
   0x00007ffff6d45330 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+0>:  mov    (%rdi),%rcx
   0x00007ffff6d45333 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+3>:  cmp    %esi,(%rcx)
   0x00007ffff6d45335 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+5>:  jg     0x7ffff6d45440 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+272>
   0x00007ffff6d4533b <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+11>: push   %r15
   0x00007ffff6d4533d <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+13>: push   %r14
   0x00007ffff6d4533f <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+15>: push   %r13
   0x00007ffff6d45341 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+17>: push   %r12
   0x00007ffff6d45343 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+19>: push   %rbp
   0x00007ffff6d45344 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+20>: push   %rbx
   0x00007ffff6d45345 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+21>: sub    $0x28,%rsp
   0x00007ffff6d45349 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+25>: mov    0x8(%rdi),%rax
   0x00007ffff6d4534d <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+29>: mov    0x10(%rdi),%r8
   0x00007ffff6d45351 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+33>: mov    0x20(%rdi),%rdx
   0x00007ffff6d45355 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+37>: movslq (%rax),%rax
   0x00007ffff6d45358 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+40>: movslq 0x4(%r8),%rbp
   0x00007ffff6d4535c <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+44>: movzwl (%rdx),%r15d
   0x00007ffff6d45360 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+48>: cmp    $0xffffffff,%eax
=> 0x00007ffff6d45363 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+51>: je     0x7ffff6d45400 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+208>
   0x00007ffff6d45369 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+57>: shl    $0x4,%rax
   0x00007ffff6d4536d <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+61>: add    0x8(%r8),%rax
   0x00007ffff6d45371 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+65>: mov    $0x1,%edx
   0x00007ffff6d45376 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+70>: mov    %ebp,0x8(%rax)
   0x00007ffff6d45379 <(anonymous namespace)::QBidiAlgorithm::<lambda(int)>::operator()(int) const+73>: movslq 0x4(%r8),%rbp
End of assembler dump.




(gdb) list
363
364             auto appendRun = [&](int runEnd) {
365                 if (runEnd < runStart)
366                     return;
367                 bool isContinuation = false;
368                 if (continuationFrom != -1) {
369                     runs[continuationFrom].continuation = runs.size();
370                     isContinuation = true;
371                 } else if (lastRunWithContent != -1 && level == runs.at(lastRunWithContent).level) {
372                     runs[lastRunWithContent].continuation = runs.size();
373                     isContinuation = true;
374                 }
375                 if (runHasContent)
376                     lastRunWithContent = runs.size();
377                 BIDI_DEBUG() << "   appending run start/end" << runStart << runEnd << "level" << level;
378                 runs.append({ runStart, runEnd, -1, level, isContinuation, runHasContent });
379                 runHasContent = false;
380                 runStart = runEnd + 1;
381                 continuationFrom = -1;
382             };


Reply to: