I was just replacing a line h << "blabla " in the middle of a .cpp file with something else. ASSERT: "line >= startLine()" in file /home/jtorres/kdesrc/frameworks/ktexteditor/src/buffer/katetextblock.cpp, line 56 [KCrash Handler] #6 0x00007efc12dbd08b in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #7 0x00007efc12da64e9 in __GI_abort () at abort.c:79 #8 0x00007efc1370d9ad in qt_message_fatal (context=..., message=<synthetic pointer>...) at global/qlogging.cpp:1842 #9 0x00007efc1370d9ad in QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffc8c4b2450, msg=msg@entry=0x7efc139afeb0 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:880 #10 0x00007efc1370ce2d in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qlogging.h:91 #11 0x00007efc15e320e6 in Kate::TextBlock::line(int) const (this=0x11d1b000, line=22) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/buffer/katetextblock.cpp:56 #12 0x00007efc15e29bf1 in Kate::TextBuffer::line(int) const (this=0x111f2170, line=22) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/buffer/katetextbuffer.cpp:168 #13 0x00007efc15ec1c52 in KateBuffer::plainLine(int) (this=0x111f2170, lineno=22) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/document/katebuffer.h:168 #14 0x00007efc15ea471e in KTextEditor::DocumentPrivate::totalCharacters() const (this=0xffe2010) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/document/katedocument.cpp:912 #15 0x00007efc15e7fe46 in KateWordCompletionModel::shouldStartCompletion(KTextEditor::View*, QString const&, bool, KTextEditor::Cursor const&) (this=0x266fc20, view=0x11befc50, insertedText=..., userInsertion=true, position=...) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/completion/katewordcompletion.cpp:159 #16 0x00007efc15e45b8c in _shouldStartCompletion(KTextEditor::CodeCompletionModel*, KTextEditor::View*, QString, bool, KTextEditor::Cursor const&) (model=0x266fc20, view=0x11befc50, m_automaticInvocationLine=..., m_lastInsertionByUser=true, cursor=...) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/completion/katecompletionwidget.cpp:95 #17 0x00007efc15e4c5f7 in KateCompletionWidget::automaticInvocation() (this=0x12f21e40) at /home/jtorres/kdesrc/frameworks/ktexteditor/src/completion/katecompletionwidget.cpp:1432 #18 0x00007efc1607b945 in KateCompletionWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x12f21e40, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7ffc8c4b2810) at /home/jtorres/kdesrc/build/frameworks/ktexteditor/src/KF5TextEditor_autogen/23UEYSZXD4/moc_katecompletionwidget.cpp:185 #19 0x00007efc1392060b in QMetaObject::activate(QObject*, int, int, void**) (sender=0x134c6780, signalOffset=<optimized out>, local_signal_index=0, argv=0x7ffc8c4b2810) at kernel/qobject.cpp:3771 #20 0x00007efc13920c27 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7efc13b7cd80 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc8c4b2810) at kernel/qobject.cpp:3633 #21 0x00007efc1392c337 in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:200 #22 0x00007efc13920e7b in QObject::event(QEvent*) (this=0x134c6780, e=<optimized out>) at kernel/qobject.cpp:1232 #23 0x00007efc142974b1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #24 0x00007efc1429eb00 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #25 0x00007efc138f73c9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x134c6780, event=0x7ffc8c4b2ae0) at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307 #26 0x00007efc139484b8 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ffc8c4b2ae0, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #27 0x00007efc139484b8 in QTimerInfoList::activateTimers() (this=0x1f6a940) at kernel/qtimerinfo_unix.cpp:643 #28 0x00007efc1394666c in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:514 #29 0x00007efbf9ea52dd in () at /usr/lib64/libQt5XcbQpa.so.5 #30 0x00007efc138f609b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffc8c4b2c90, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #31 0x00007efc138fe212 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #32 0x000000000040cd22 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/jtorres/kdesrc/extragear/kdevelop/kdevelop/app/main.cpp:823
Do you have a way how to reproduce? Since if not, this is going to be hard to find...
Similar issue: bug #375863
What I've realized is that the file was modified (before the crash) in the incorrect place (serveral lines bellow, in the last edition position) instead of the new position. But I can't reproduce it at will. In any case, marked as a duplicate. *** This bug has been marked as a duplicate of bug 375863 ***