Version: 2.5.5 (using KDE Devel) Installed from: Compiled sources OS: Linux While using Kate, it crashes sometimes, if I select a line or undo an operation. 3.5 branch (591511) gcc (GCC) 4.1.0 (SUSE Linux) Using host libthread_db library "/lib64/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 47766239381600 (LWP 26531)] [KCrash handler] #5 0x000000000040b1ba in QChar (this=0x7fff3d0fd3e0, c=@0x0) at /usr/local/lib64/qt3/include/qstring.h:270 #6 0x00002b71732fa50c in KateRenderer::textWidth (this=0xbeb640, textLine=@0x7fff3d0fd460, cursorCol=40) at /home/kde/3.5/kdelibs/kate/part/katerenderer.cpp:766 #7 0x00002b71732db9a3 in KateViewInternal::updateMicroFocusHint ( this=0xbf1f50) at /home/kde/3.5/kdelibs/kate/part/kateviewinternal.cpp:886 #8 0x00002b71732de8a2 in KateViewInternal::updateCursor (this=0xbf1f50, newCursor=@0x7fff3d0fd5d0, force=false, center=false, calledExternally=false) at /home/kde/3.5/kdelibs/kate/part/kateviewinternal.cpp:2169 #9 0x00002b71732e04d2 in KateViewInternal::placeCursor (this=0xbf1f50, p=@0x7fff3d0fdbb0, keepSelection=false, updateSelection=true) at /home/kde/3.5/kdelibs/kate/part/kateviewinternal.cpp:2377 #10 0x00002b71732e0bf8 in KateViewInternal::mousePressEvent (this=0xbf1f50, e=0x7fff3d0fdba0) at /home/kde/3.5/kdelibs/kate/part/kateviewinternal.cpp:2699 #11 0x00002b716f8a1287 in QWidget::event (this=0xbf1f50, e=0x7fff3d0fdba0) at kernel/qwidget.cpp:4671 #12 0x00002b716f808d6e in QApplication::internalNotify (this=0x7fff3d0fe5b0, receiver=0xbf1f50, e=0x7fff3d0fdba0) at kernel/qapplication.cpp:2635 #13 0x00002b716f80ace5 in QApplication::notify (this=0x7fff3d0fe5b0, receiver=0xbf1f50, e=0x7fff3d0fdba0) at kernel/qapplication.cpp:2421 #14 0x00002b716ea6d811 in KApplication::notify (this=0x7fff3d0fe5b0, receiver=0xbf1f50, event=0x7fff3d0fdba0) at /home/kde/3.5/kdelibs/kdecore/kapplication.cpp:550 #15 0x00002b716f79c9a6 in QApplication::sendSpontaneousEvent ( receiver=0xbf1f50, event=0x7fff3d0fdba0) at kernel/qapplication.h:499 #16 0x00002b716f79b62b in QETWidget::translateMouseEvent (this=0xbf1f50, event=0x7fff3d0fe220) at kernel/qapplication_x11.cpp:4297 #17 0x00002b716f799822 in QApplication::x11ProcessEvent (this=0x7fff3d0fe5b0, event=0x7fff3d0fe220) at kernel/qapplication_x11.cpp:3448 #18 0x00002b716f7afac3 in QEventLoop::processEvents (this=0x5c3e10, flags=4) at kernel/qeventloop_x11.cpp:192 #19 0x00002b716f821c77 in QEventLoop::enterLoop (this=0x5c3e10) at kernel/qeventloop.cpp:198 #20 0x00002b716f821abb in QEventLoop::exec (this=0x5c3e10) at kernel/qeventloop.cpp:145 #21 0x00002b716f80a688 in QApplication::exec (this=0x7fff3d0fe5b0) at kernel/qapplication.cpp:2758 #22 0x00002b717221aa5a in kdemain (argc=1, argv=0x56c320) at /home/kde/3.5/kdebase/kate/app/katemain.cpp:253 #23 0x00002b7172113927 in kdeinitmain (argc=1, argv=0x56c320) at ./kate/app/kdeinit_kate.la.cpp:3 #24 0x0000000000409274 in launch (argc=1, _name=0x56dfc8 "kate", args=0x56dfcd "\001", cwd=0x0, envc=1, envs=0x56dfe2 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x56dfea "gamorr;1159881625;792423;3854_TIME24096121") at /home/kde/3.5/kdelibs/kinit/kinit.cpp:673 #25 0x0000000000409d63 in handle_launcher_request (sock=9) at /home/kde/3.5/kdelibs/kinit/kinit.cpp:1240 #26 0x000000000040a5b1 in handle_requests (waitForPid=0) at /home/kde/3.5/kdelibs/kinit/kinit.cpp:1443 #27 0x000000000040b094 in main (argc=5, argv=0x7fff3d0ff828, envp=0x7fff3d0ff858) at /home/kde/3.5/kdelibs/kinit/kinit.cpp:1909
> On 2006-09-10: SVN commit 582742 by amantia: > > Commit the QXIMInputContext crash workaround at higher level, so not only > KDevelop is protected, but other katepart using applications as well. This bug may be fixed, but I'm unsure as you use kde-devel version (bug report says kate 2.5.5, 3.5 branch). When did you svn up the last time? Before or after 10th of september?
SVN rev. 591511. That's after 2006-10-02.
Before going to bed yesterday night started an overnight updated with kdesvn-build. And got the crash since then. Kate 2.5.5 I use kdevelop and kate every day. This is a new bug. Also, It only crashes on certain files. I can send in the crashy cpp-file for you if you like. Just give me an adress.
Jonas, can you attach the test file to this bug report? Otherwise, just send me a mail. If you know exactly how to reproduce, please tell us. A valgrind trace would help, too.
Created attachment 18017 [details] A cpp file that causes kate to crash. I'll attach a valgrind trace when it's ready. Also, I am not sure what revision number I am running right now because I updated to kdebase that doesn't compile. I'll report later.
Created attachment 18018 [details] a valgrind log showing the crash. This is: URL: svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kdebase/kate Repository Root: svn://anonsvn.kde.org/home/kde Repository UUID: 283d02a7-25f6-0310-bc7c-ecb5cbfe19da Revision: 592671 And the crash is 100% consistently reproduced like this: I have a default session including ONLY parsergrammar.cpp I click with the mouse anywhere in that document, which always leads to the crash. Happy hunting ;)
I got some more crash reproduction info. The crash occurs if you save a file starting with a blank line, close the file reopen it. Click it somewhere (not on the first line) or navigate with keyboard somewhere off that first blank line, and kate crashes. It doesn't happen if there is at least one character on the first line.
just for your information, the same crash occurs in kwrite too: ==22741== Invalid read of size 2 ==22741== at 0x40527C6: QChar::QChar(QChar const&) (qstring.h:270) ==22741== by 0x7034E1F: KateRenderer::textWidth(KSharedPtr<KateTextLine> const&, int) (katerenderer.cpp:766) ==22741== by 0x7015BAE: KateViewInternal::updateMicroFocusHint() (kateviewinternal.cpp:886) ==22741== by 0x7018A34: KateViewInternal::updateCursor(KateTextCursor const&, bool, bool, bool) (kateviewinternal.cpp:2169) ==22741== by 0x701A0CB: KateViewInternal::placeCursor(QPoint const&, bool, bool) (kateviewinternal.cpp:2377) ==22741== by 0x701A791: KateViewInternal::mousePressEvent(QMouseEvent*) (kateviewinternal.cpp:2699) ==22741== by 0x4E79F32: QWidget::event(QEvent*) (in /home/jonas/kdesvn/build/qt-copy/lib/libqt-mt.so.3.3.6) ==22741== by 0x4DE3666: QApplication::internalNotify(QObject*, QEvent*) (in /home/jonas/kdesvn/build/qt-copy/lib/libqt-mt.so.3.3.6) ==22741== by 0x4DE4548: QApplication::notify(QObject*, QEvent*) (in /home/jonas/kdesvn/build/qt-copy/lib/libqt-mt.so.3.3.6) ==22741== by 0x4977728: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:550) ==22741== by 0x4D835C8: QETWidget::translateMouseEvent(_XEvent const*) (in /home/jonas/kdesvn/build/qt-copy/lib/libqt-mt.so.3.3.6) ==22741== by 0x4D824D6: QApplication::x11ProcessEvent(_XEvent*) (in /home/jonas/kdesvn/build/qt-copy/lib/libqt-mt.so.3.3.6) ==22741== Address 0x0 is not stack'd, malloc'd or (recently) free'd
I CANNOT confirm, that the crash does not occur, if there's one character in the first line at least.
And I was able to keep working all day and night without problems as long as the first line isn't blank.
Created attachment 18033 [details] possible fix can you please try the attached patch? I can not reproduce this crash at all, so there is no way for me to try this...
*** Bug 135169 has been marked as a duplicate of this bug. ***
It's 100% reproductible bug - kate crashes when the first line of opened file is empty - no matter if it's html, txt or something else. If you put some characters (even one) in the first line then kate doesn't crash, even when you delete all the characters from the first line later. Kate crashes only when you open the file with empty first line of file and you try to search through file or navigate with arrows to the end of lines or to lines which are wrapped to the next line. gdb points to KateRenderer::textWidth() And it's KDE 3.5.5 related.
I've observed crashes also for files not beginning with an empty line. Anyway, since I installed the patch (17:45), I haven't encountered one.
I can reproduce the crash and the patch seems to be correct.
SVN commit 593300 by dhaumann: fix crash that makes katepart pretty unusable. Please retag for KDE 3.5.5 - thanks & sorry for the hassle. BUG: 135045 M +1 -1 katerenderer.cpp --- branches/KDE/3.5/kdelibs/kate/part/katerenderer.cpp #593299:593300 @@ -763,7 +763,7 @@ x += width; - if (unicode[z] == QChar('\t')) + if (z < len && unicode[z] == QChar('\t')) x -= x % width; }
*** Bug 136451 has been marked as a duplicate of this bug. ***