On Sat, 2025-12-13 at 17:48 +0900, Koji Yokota wrote:
> > 2025/12/13 2:33、José Matos <[email protected]>のメール:
> >
> > Got this while I was moving a section/subsection above.
> >
> > I was using Alt+Up to move the section above. And then it crashed.
>
> My Ubuntu cannot reproduce the case, but since your log indicates that the
> cursor position is negative, I suspect Cursor class is not instantiated when
> GuiInputMethod::toggleInputMethodAcceptance() is called.
>
> Could you try if the attached patch solves the problem?
>
> Thank you in advance,
>
> Koji
I can still get a crash in that case.
I have applied your patch because, as you can see, the problem occurs in line
134 and not on 132 as before.
I think that this happened before but only now I understood, I was aware of the
process, what I was doing when the assertion occurred.
In almost all cases this is the use case:
* the screen is split in two (left and right halves);
* I create an itemized list on the right, but I do not type there, the paragraph
is empty;
* I go to the left part and copy some text from there;
* I change the cursor to the empty paragraph in the right part and paste the
text in there;
* kaboom :-)
This does not occur always but it is frequent enough for me to recall the
previous experience. :-)
Thank you for looking into this.
--
José Abílio
(gdb) bt
#0 0x00007ffff5a813cc in __pthread_kill_implementation () at /lib64/libc.so.6
#1 0x00007ffff5a2715e in raise () at /lib64/libc.so.6
#2 0x00007ffff5a0e6d0 in abort () at /lib64/libc.so.6
#3 0x00000000004f1bec in lyx::lyx_exit (exit_code=exit_code@entry=1) at
/home/jamatos/lyx/lyx-25x/src/LyX.cpp:262
#4 0x00000000009d7cd1 in lyx::doAssertWithCallstack (value=value@entry=false)
at /home/jamatos/lyx/lyx-25x/src/support/lassert.cpp:50
#5 0x00000000009d7f29 in lyx::doBufErr (expr=expr@entry=0xd5cbef "false",
file=file@entry=0xd2db50 "/home/jamatos/lyx/lyx-25x/src/Paragraph.cpp",
line=line@entry=1958) at /home/jamatos/lyx/lyx-25x/src/support/lassert.cpp:98
#6 0x0000000000526f1c in lyx::Paragraph::getFontSettings
(this=this@entry=0x5b6c1c0, bparams=..., pos=pos@entry=58) at
/home/jamatos/lyx/lyx-25x/src/Paragraph.cpp:1958
#7 0x00000000005270e4 in lyx::Paragraph::getFont (this=this@entry=0x5b6c1c0,
bparams=..., pos=pos@entry=58, outerfont=...) at
/home/jamatos/lyx/lyx-25x/src/Paragraph.cpp:2040
#8 0x0000000000478d9d in lyx::Cursor::getFont (this=0x6281a28) at
/home/jamatos/lyx/lyx-25x/src/Cursor.cpp:2435
#9 0x00000000008dcb7c in
lyx::frontend::GuiInputMethod::toggleInputMethodAcceptance (this=0x62832c0) at
/home/jamatos/lyx/lyx-25x/src/frontends/qt/GuiInputMethod.cpp:134
#10 0x00000000008e391c in QtPrivate::FunctorCall<std::integer_sequence<unsigned
long>, QtPrivate::List<>, void, void
(lyx::frontend::GuiInputMethod::*)()>::call(void
(lyx::frontend::GuiInputMethod::*)(), lyx::frontend::GuiInputMethod*,
void**)::{lambda()#1}::operator()() const
(__closure=__closure@entry=0x7fffffffc680) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:127
#11 0x00000000008e3b93 in QtPrivate::FunctorCallBase::call_internal<void,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>,
void, void (lyx::frontend::GuiInputMethod::*)()>::call(void
(lyx::frontend::GuiInputMethod::*)(), lyx::frontend::GuiInputMethod*,
void**)::{lambda()#1}>(void**,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>,
void, void (lyx::frontend::GuiInputMethod::*)()>::call(void
(lyx::frontend::GuiInputMethod::*)(), lyx::frontend::GuiInputMethod*,
void**)::{lambda()#1}&&) (args=<optimized out>, fn=...) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#12 QtPrivate::FunctorCall<std::integer_sequence<unsigned long>,
QtPrivate::List<>, void, void (lyx::frontend::GuiInputMethod::*)()>::call(void
(lyx::frontend::GuiInputMethod::*)(), lyx::frontend::GuiInputMethod*, void**)
(f=&virtual lyx::frontend::GuiInputMethod::toggleInputMethodAcceptance(),
o=<optimized out>, arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:126
#13 0x00000000008e3bd0 in QtPrivate::FunctionPointer<void
(lyx::frontend::GuiInputMethod::*)()>::call<QtPrivate::List<>, void>(void
(lyx::frontend::GuiInputMethod::*)(), lyx::frontend::GuiInputMethod*, void**)
(f=<optimized out>, o=<optimized out>, arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:174
#14 QtPrivate::QCallableObject<void (lyx::frontend::GuiInputMethod::*)(),
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*,
void**, bool*)
(which=<optimized out>, this_=<optimized out>, r=<optimized out>,
a=<optimized out>, ret=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:545
#15 0x00007ffff616759a in void doActivate<false>(QObject*, int, void**) () at
/lib64/libQt6Core.so.6
#16 0x000000000079237c in lyx::frontend::GuiApplication::acceptsInputMethod
(this=this@entry=0x1068590) at ./moc_GuiApplication.cpp:157
#17 0x0000000000797729 in lyx::frontend::GuiApplication::processKeySym
(this=0x1068590, keysym=..., state=state@entry=1) at
/home/jamatos/lyx/lyx-25x/src/frontends/qt/GuiApplication.cpp:2478
#18 0x00000000007e8f42 in lyx::frontend::GuiWorkArea::processKeySym
(this=0x1f2b800, key=..., mod=1) at
/home/jamatos/lyx/lyx-25x/src/frontends/qt/GuiWorkArea.cpp:419
#19 0x00000000007eaa44 in lyx::frontend::GuiWorkArea::qt_static_metacall
(_o=0x1f2b800, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffffca00) at
./moc_GuiWorkArea.cpp:146
#20 0x00007ffff6167a3a in void doActivate<false>(QObject*, int, void**) () at
/lib64/libQt6Core.so.6
#21 0x00000000007e8cf0 in QMetaObject::activate<void, lyx::KeySymbol, unsigned
int> (sender=0x1f44d70, mo=0xf8e700
<lyx::frontend::CompressorProxy::staticMetaObject>, local_signal_index=0,
ret=0x0)
at /usr/include/qt6/QtCore/qobjectdefs.h:319
#22 lyx::frontend::CompressorProxy::signal (this=this@entry=0x1f44d70, _t1=...,
_t2=<optimized out>, _t2@entry=1) at ./moc_GuiWorkArea.cpp:343
#23 0x00000000007e95f6 in lyx::frontend::CompressorProxy::slot (this=0x1f44d70,
sym=..., mod=1, isAutoRepeat=<optimized out>) at
/home/jamatos/lyx/lyx-25x/src/frontends/qt/GuiWorkArea.cpp:1034
#24 0x00000000007e96a2 in lyx::frontend::CompressorProxy::qt_static_metacall
(_o=<optimized out>, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>,
_a=0x45a0f70) at ./moc_GuiWorkArea.cpp:299
#25 0x00007ffff6158fcc in QObject::event(QEvent*) () at /lib64/libQt6Core.so.6
#26 0x00007ffff743db9f in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /lib64/libQt6Widgets.so.6
#27 0x00000000007a246a in lyx::frontend::GuiApplication::notify
(this=0x1068590, receiver=<optimized out>, event=<optimized out>) at
/home/jamatos/lyx/lyx-25x/src/frontends/qt/GuiApplication.cpp:3046
#28 0x00007ffff60fc4e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /lib64/libQt6Core.so.6
#29 0x00007ffff60ffb09 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () at /lib64/libQt6Core.so.6
#30 0x00007ffff641efcf in postEventSourceDispatch(_GSource*, int (*)(void*),
void*) () at /lib64/libQt6Core.so.6
#31 0x00007ffff5eeb2a3 in g_main_context_dispatch_unlocked.lto_priv () at
/lib64/libglib-2.0.so.0
#32 0x00007ffff5ef41f8 in g_main_context_iterate_unlocked.isra () at
/lib64/libglib-2.0.so.0
#33 0x00007ffff5ef43a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#34 0x00007ffff641e80d in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /lib64/libQt6Core.so.6
#35 0x00007ffff6109063 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/lib64/libQt6Core.so.6
#36 0x00007ffff6104819 in QCoreApplication::exec() () at /lib64/libQt6Core.so.6
#37 0x0000000000792b6f in lyx::frontend::GuiApplication::exec (this=0x1068590)
at /home/jamatos/lyx/lyx-25x/src/frontends/qt/GuiApplication.cpp:2809
#38 0x00000000004f6754 in lyx::LyX::exec (this=this@entry=0x7fffffffd0c0,
argc=@0x7fffffffd0bc: 1, argv=<optimized out>) at
/home/jamatos/lyx/lyx-25x/src/LyX.cpp:376
#39 0x0000000000412a51 in main (argc=<optimized out>, argv=<optimized out>) at
/home/jamatos/lyx/lyx-25x/src/main.cpp:55
--
lyx-devel mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-devel