Version: cvs (using KDE KDE 3.1) Installed from: Compiled From Sources Compiler: gcc 2.95 OS: Linux After I reopen a project and I get 5 opened source files, and I select the 3rd, the back button will bring me to the following files: 4th, 5th, 4th, 3th, 2nd, 1st (and now it gets disabled) As I figured out it brings back to the last selected file(s) first and if there is no "last" selected file, switches to the last one and goes back in the opened file list. This is really confusing... And even now, after I've switched (randomly) between the open files, pressing back a lot of time crashed Gideon, altough I couldn't reproduce now, so I will sent the backtrace next time when it crashes. (From Mantia Andras)
Of course I don't have debugging enabled, but maybe this will get us a little closer... [New Thread 16384 (LWP 18904)] [New Thread 32769 (LWP 18905)] [New Thread 32770 (LWP 18907)] 0x413eb2cc in __libc_waitpid (pid=18917, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:32 32 int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL); #0 0x413eb2cc in __libc_waitpid (pid=18917, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:32 #1 0x40ac3b67 in KCrash::defaultCrashHandler(int) () from /opt/kde3/lib/libkdecore.so.4 #2 0x413e9905 in __pthread_sighandler (signo=11, ctx= {gs = 7, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 49168, edi = 3221221104, esi = 6815860, ebp = 3221221032, esp = 3221220924, ebx = 1093400568, edx = 6815860, ecx = 0, eax = 6815860, trapno = 14, err = 4, eip = 1096359811, cs = 35, __csh = 0, eflags = 66118, esp_at_signal = 3221220924, ss = 43, __ssh = 0, fpstate = 0xbfffebc0, oldmask = 2147483648, cr2 = 6815860}) at sighandler.c:38 #3 <signal handler called> #4 0x41591f83 in strlen () at strlen:-1 #5 0x410f9bbf in QString::fromUtf8(char const*, int) () from /usr/lib/qt/lib/libqt-mt.so.3 #6 0x4045902d in KParts::PartManager::setActivePart(KParts::Part*, QWidget*) () from /opt/kde3/lib/libkparts.so.2 #7 0x41fa4fd1 in HistoryPart::restoreState() () from /opt/kde3/addons/lib/kde3/libkdevhistory.so #8 0x41fa5090 in HistoryPart::backActivated() () from /opt/kde3/addons/lib/kde3/libkdevhistory.so #9 0x41fa5655 in HistoryPart::qt_invoke(int, QUObject*) () from /opt/kde3/addons/lib/kde3/libkdevhistory.so #10 0x40e50369 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt/lib/libqt-mt.so.3 #11 0x40e5020d in QObject::activate_signal(int) () from /usr/lib/qt/lib/libqt-mt.so.3 #12 0x4084a9db in KAction::activated() () from /opt/kde3/lib/libkdeui.so.4 #13 0x4083916f in KAction::slotActivated() () from /opt/kde3/lib/libkdeui.so.4 #14 0x4084abe1 in KAction::qt_invoke(int, QUObject*) () from /opt/kde3/lib/libkdeui.so.4 #15 0x4084d12d in KToolBarPopupAction::qt_invoke(int, QUObject*) () from /opt/kde3/lib/libkdeui.so.4 #16 0x40e502e0 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt/lib/libqt-mt.so.3 #17 0x40e5020d in QObject::activate_signal(int) () from /usr/lib/qt/lib/libqt-mt.so.3 #18 0x4115ca2e in QButton::clicked() () from /usr/lib/qt/lib/libqt-mt.so.3 #19 0x40ed2c96 in QButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/qt/lib/libqt-mt.so.3 #20 0x40e848ac in QWidget::event(QEvent*) () from /usr/lib/qt/lib/libqt-mt.so.3 #21 0x40df2394 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt/lib/libqt-mt.so.3 #22 0x40df1bc3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt/lib/libqt-mt.so.3 #23 0x40a3a389 in KApplication::notify(QObject*, QEvent*) () from /opt/kde3/lib/libkdecore.so.4 #24 0x40d9831b in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt/lib/libqt-mt.so.3 #25 0x40d95bdb in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt/lib/libqt-mt.so.3 #26 0x40daae61 in QEventLoop::processEvents(unsigned) () from /usr/lib/qt/lib/libqt-mt.so.3 #27 0x40e061e6 in QEventLoop::enterLoop() () from /usr/lib/qt/lib/libqt-mt.so.3 #28 0x40e06088 in QEventLoop::exec() () from /usr/lib/qt/lib/libqt-mt.so.3 #29 0x40df25c1 in QApplication::exec() () from /usr/lib/qt/lib/libqt-mt.so.3 #30 0x0806881e in main () #31 0x4152bca6 in __libc_start_main (main=0x8068230 <main>, argc=7, ubp_av=0xbffffad4, init=0x809dd80 <__libc_csu_init>, fini=0x809ddb0 <__libc_csu_fini>, rtld_fini=0x80ea050, stack_end=0x0) at ../sysdeps/generic/libc-start.c:152
I just fixed a crash that might have been the one reported. The backtrace is similar and it appeared under similar circumstances. As for the order mess.. history part is just broken, the sooner it is replaced with a revived sourcenav part the better. The main problem is that it stores pointers to embedded parts and assumes it knows when they are invalidated by listening to partRemoved() and partAdded(). However, the signals doesn't always come in the "expected" order and the logic doesn't hold up.
Actually, I can't reproduce the "wrong order" problem, and I can no longer crash it. Assuming fixed.