Version: 1.3 (using KDE 3.1.94 (CVS >= 20031206), compiled sources) Compiler: gcc version 3.3.1 (Mandrake Linux 9.2 3.3.1-2mdk) OS: Linux (i686) release 2.4.22-21mdk CVS updated as of 07 January 2004 How to reproduce: - Write a translation with only one word, that word has to be recognised by the spell checker as not correct - Open the spelling dialog for that message only. - Click 'Cancel' NOT 'ignore' - A message will appear saying you made 0 substitutions - After clicking OK kbabel will segfault The segmentation fault is triggered at kbabelview.cpp:4769 => int s=spell.kspell->dlgResult(); Backtrace 0x41608656 in waitpid () from /lib/i686/libpthread.so.0 #0 0x41608656 in waitpid () from /lib/i686/libpthread.so.0 #1 0x408afbbf in KCrash::defaultCrashHandler(int) () from /usr/local/kdecvs/lib/libkdecore.so.4 #2 0x416074ec in __pthread_clock_settime () from /lib/i686/libpthread.so.0 #3 0x416a8ca8 in __libc_sigaction () from /lib/i686/libc.so.6 #4 0x08088fd0 in KBabelView::spellResult(bool) (this=0x81a7a60, flag=true) at kbabelview.cpp:4769 #5 0x0808b724 in KBabelView::qt_invoke(int, QUObject*) (this=0x81a7a60, _id=161, _o=0xbfffe690) at kbabelview.moc:1019 #6 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) ( this=0x83cb050, clist=0x83cad60, o=0xbfffe690) at kernel/qobject.cpp:2359 #7 0x40d22844 in QObject::activate_signal_bool(int, bool) (this=0x83cb050, signal=11, param=true) at kernel/qobject.cpp:2455 #8 0x40735614 in KSpell::done(bool) () from /usr/local/kdecvs/lib/libkdeui.so.4 #9 0x40731250 in KSpell::checkList2() () from /usr/local/kdecvs/lib/libkdeui.so.4 #10 0x407316a1 in KSpell::checkList3a(KProcIO*) () from /usr/local/kdecvs/lib/libkdeui.so.4 #11 0x407357ed in KSpell::qt_invoke(int, QUObject*) () from /usr/local/kdecvs/lib/libkdeui.so.4 #12 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) ( this=0x83ca378, clist=0x83c67c0, o=0xbfffe8c0) at kernel/qobject.cpp:2359 #13 0x408fb696 in KProcIO::readReady(KProcIO*) () from /usr/local/kdecvs/lib/libkdecore.so.4 #14 0x408fb277 in KProcIO::controlledEmission() () from /usr/local/kdecvs/lib/libkdecore.so.4 #15 0x408fb1bf in KProcIO::received(KProcess*, char*, int) () from /usr/local/kdecvs/lib/libkdecore.so.4 #16 0x408fb71a in KProcIO::qt_invoke(int, QUObject*) () from /usr/local/kdecvs/lib/libkdecore.so.4 #17 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) ( this=0x83ca378, clist=0x83c6888, o=0xbfffea20) at kernel/qobject.cpp:2359 #18 0x408561ee in KProcess::receivedStdout(KProcess*, char*, int) () from /usr/local/kdecvs/lib/libkdecore.so.4 #19 0x4085500f in KProcess::childOutput(int) () from /usr/local/kdecvs/lib/libkdecore.so.4 #20 0x40854c00 in KProcess::slotChildOutput(int) () from /usr/local/kdecvs/lib/libkdecore.so.4 #21 0x40855cf9 in KProcess::commClose() () from /usr/local/kdecvs/lib/libkdecore.so.4 #22 0x40854f57 in KProcess::processHasExited(int) () from /usr/local/kdecvs/lib/libkdecore.so.4 #23 0x40857393 in KProcessController::slotDoHousekeeping() () from /usr/local/kdecvs/lib/libkdecore.so.4 #24 0x40857889 in KProcessController::qt_invoke(int, QUObject*) () from /usr/local/kdecvs/lib/libkdecore.so.4 #25 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) ( this=0x817f388, clist=0x8148980, o=0xbffff170) at kernel/qobject.cpp:2359 #26 0x40d22094 in QObject::activate_signal(int, int) (this=0x817f388, signal=2, param=5) at kernel/qobject.cpp:2452 #27 0x411286cd in QSocketNotifier::activated(int) (this=0x817f388, t0=5) at .moc/debug-shared-mt/moc_qsocketnotifier.cpp:85 #28 0x40d46f38 in QSocketNotifier::event(QEvent*) (this=0x817f388, e=0xbffff410) at kernel/qsocketnotifier.cpp:280 #29 0x40cb160b in QApplication::internalNotify(QObject*, QEvent*) ( this=0xbffff6a0, receiver=0x817f388, e=0xbffff410) at kernel/qapplication.cpp:2614 #30 0x40cb0a0e in QApplication::notify(QObject*, QEvent*) (this=0xbffff6a0, receiver=0x817f388, e=0xbffff410) at kernel/qapplication.cpp:2337 #31 0x4081139d in KApplication::notify(QObject*, QEvent*) () from /usr/local/kdecvs/lib/libkdecore.so.4 #32 0x40c39edf in QApplication::sendEvent(QObject*, QEvent*) ( receiver=0x817f388, event=0xbffff410) at qapplication.h:490 #33 0x40c9c610 in QEventLoop::activateSocketNotifiers() (this=0x8169658) at kernel/qeventloop_unix.cpp:580 #34 0x40c4d9f3 in QEventLoop::processEvents(unsigned) (this=0x8169658, flags=4) at kernel/qeventloop_x11.cpp:383 #35 0x40cc8ad4 in QEventLoop::enterLoop() (this=0x8169658) at kernel/qeventloop.cpp:198 #36 0x40cc89f0 in QEventLoop::exec() (this=0x8169658) at kernel/qeventloop.cpp:145 #37 0x40cb17c7 in QApplication::exec() (this=0xbffff6a0) at kernel/qapplication.cpp:2737 #38 0x08072224 in main (argc=7, argv=0xbffff824) at main.cpp:489 #39 0x41695c57 in __libc_start_main () from /lib/i686/libc.so.6
I must say "Finish", not cancel (this would not produce the dialog about substitions you've seen), but it crashes then.
Zack, it seems done () signal is emitted twice.
Any chance of seeing a bt with debugging symbols?
Created attachment 4126 [details] also kdelibs with debug Here it is.
I can reproduce it with both 'Finish' and 'Cancel'. Finish gives me two messages about 0 substitutions and then segfaults, Cancel gives only one message about 0 substitutions and then segfaults.
Subject: Re: Canceling spell checking causes segmentation fault [bracktrace included] That tells me absolutely nothing. 1) Did you update after my last patch? 2) If you did you get a different backtrace (and definitely got different bt's for both cases) - please attach those.
It works now, thanks a lot.