Bug 55275 - history buttons do not go in correct order
Summary: history buttons do not go in correct order
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: KDevelop Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-02-27 15:20 UTC by Caleb Tennis
Modified: 2003-11-03 16:05 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Caleb Tennis 2003-02-27 15:20:55 UTC
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)
Comment 1 Caleb Tennis 2003-03-11 21:30:46 UTC
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 
 
Comment 2 Jens Dagerbo 2003-10-27 23:58:01 UTC
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.
Comment 3 Jens Dagerbo 2003-11-03 16:05:12 UTC
Actually, I can't reproduce the "wrong order" problem, and I can no longer crash it. Assuming fixed.