Version: 3.0.0a4 (using KDE KDE 3.1) Installed from: RedHat RPMs Compiler: gcc 3.2.2 OS: Linux Gideon 3.0.0a4 (KDE 3.1-10) gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Linux version 2.4.20-9 Gideon crashes while debugging with the watch/variable view expanded to show local variables. This is not easily reproducable but becomes more likely after a long debug session or after multiple build/debug sequences. Built from 2003-04-29 cvs. [New Thread 1101436576 (LWP 30969)] [New Thread 1121467696 (LWP 30970)] 0xffffe002 in ?? () #0 0xffffe002 in ?? () #1 0x40a105bd in KCrash::defaultCrashHandler(int) () from /usr/lib/libkdecore.so.4 #2 <signal handler called> #3 0x4207a8ce in strncmp () from /lib/tls/libc.so.6 #4 0x424bfe03 in GDBDebugger::VarItem::checkForRequests() (this=0x9e42a18) at qcstring.h:295 #5 0x424bfc6d in GDBDebugger::VarItem::setCache(QCString const&) ( this=0x9e42a18, value=@0xbfffe740) at variablewidget.cpp:643 #6 0x424bab03 in GDBDebugger::GDBParser::setItem(GDBDebugger::TrimmableItem*, QString const&, GDBDebugger::DataType, QCString const&, bool, bool) ( this=0x8ea9a10, parent=0x1a, varName=@0xbfffe7c0, dataType=3221219248, value=@0xbfffe7b0) at gdbparser.cpp:202 #7 0x424ba4c6 in GDBDebugger::GDBParser::parseData(GDBDebugger::TrimmableItem*, char*, bool, bool) (this=0x8ea9a10, parent=0x99a2f90, buf=0x9e49ce9 " ", requested=3, params=false) at gdbparser.cpp:89 #8 0x424c06df in GDBDebugger::VarFrameRoot::setOpen(bool) (this=0x99a2f90, open=true) at qmemarray.h:64 #9 0x424c05c3 in GDBDebugger::VarFrameRoot::setLocals(char*) (this=0x99a2f90, locals=0x9a2b752 "ref = (__xpath_path_node &) @0xe: ") at variablewidget.cpp:801 #10 0x424b46ff in GDBDebugger::GDBController::parseLocals(char, char*) ( this=0x899ffd0, type=76 'L', buf=0x9a2b752 "ref = (__xpath_path_node &) @0xe: ") at gdbcontroller.cpp:907 #11 0x424b497c in GDBDebugger::GDBController::parseCmdBlock(char*) ( this=0x899ffd0, buf=0x9a2b752 "ref = (__xpath_path_node &) @0xe: ") at gdbcontroller.cpp:982 #12 0x424b4b5e in GDBDebugger::GDBController::parse(char*) (this=0x899ffd0, buf=0x9a2b750 "\032Lref = (__xpath_path_node &) @0xe: ") at gdbcontroller.cpp:1091 #13 0x424b7fb3 in GDBDebugger::GDBController::slotDbgStdout(KProcess*, char*, int) (this=0x899ffd0, buf=0xbfffeb30 "\032Lref = (__xpath_path_node &) @0xe: \032L\032i", buflen=40) at gdbcontroller.cpp:1814 #14 0x424b92e5 in GDBDebugger::GDBController::qt_invoke(int, QUObject*) ( this=0x899ffd0, _id=53, _o=0xbfffeaa0) at qucom_p.h:312 #15 0x40daa0c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #16 0x409d5af9 in KProcess::receivedStdout(KProcess*, char*, int) () from /usr/lib/libkdecore.so.4 #17 0x409d4701 in KProcess::childOutput(int) () from /usr/lib/libkdecore.so.4 #18 0x409d44f9 in KProcess::slotChildOutput(int) () from /usr/lib/libkdecore.so.4 #19 0x409d5e66 in KProcess::qt_invoke(int, QUObject*) () from /usr/lib/libkdecore.so.4 #20 0x40daa0c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #21 0x40daa1a5 in QObject::activate_signal(int, int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #22 0x4108a282 in QSocketNotifier::activated(int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #23 0x40dc64b0 in QSocketNotifier::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #24 0x40d4bf24 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #25 0x40d4bb19 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #26 0x409a41e9 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #27 0x40d26efa in QEventLoop::activateSocketNotifiers() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #28 0x40d048d7 in QEventLoop::processEvents(unsigned) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #29 0x40d5fcf6 in QEventLoop::enterLoop() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #30 0x40d5fb98 in QEventLoop::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #31 0x40d4c151 in QApplication::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #32 0x0806971c in main (argc=1, argv=0xbffff5f4) at main.cpp:89 #33 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6
I don't understand the debugger code well enough to understand this, but I can reproduce it: Debug gideon -> set a breakpoint at line 81 of parts/closer/closer_part.cpp in the current souce (the line is "void CloserPart::closeFiles( QStringList const & fileList )" - the method head). Trigger this code (assumes closerpart is loaded) by hitting ctrl+alt-W and clicking "ok". When the debugger stops the program at line 81, expand the stackframe in the variables/watch window -> CRASH, with the reported backtrace. Putting the breakpoint inside the method (line 83) produces no such crash on expansion of the stackframe. For me, this happens everytime. I first noticed it somewhere else, so I don't think it's that particular to the code being debugged, but this was an easy place to trigger it.
Hopefully fixed in CVS. I committed a patch that handles the problem for my case (see previous comment) and since it was the same stacktrace, maybe it helps. Please reopen if the patch is unsuccessful.