[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 148885] New: SIGSEGV clicking at the end of a method call
From:       Wolfgang Wirth <woefel () woefel ! de>
Date:       2007-08-16 13:12:56
Message-ID: 20070816151254.148885.woefel () woefel ! de
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=148885         
           Summary: SIGSEGV clicking at the end of a method call
           Product: kdevelop
           Version: 3.4.1
          Platform: Debian stable
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
        AssignedTo: kdevelop-bugs kdevelop org
        ReportedBy: woefel woefel de


Version:           3.4.1 (using KDE KDE 3.5.5)
Installed from:    Debian stable Packages
Compiler:          gcc 404 
OS:                Linux

kdevelop crashes reproducibly when clicking between the last parameter and th closing \
bracket of a specific class method call. It does not crash at other methods or other \
positions (e.g. at other parameters).

The output of valgrind is:
kdevelop (cpp support): CppCodeCompletion::evaluateExpressionAt( 627, 265 )
kdevelop (cpp support): evaluating line "if(currentPlate==2) { \
computeFemCond(subdivision, orientation, fsize, visf, visfolder, compatibilityMode, \
foundedt, xffound, xfileA, xfileB, xxres, xyres, xzres,exportfolder, foundpsf, \
plateQC[currentPlate], plateQCMsg[currentPlate], srfound, ipfound, lateralMark)" \
kdevelop (cpp support): missing recovery-points for file \
/home/wirth/svn/chmcalc/chmCalc/trunk/src/chmcalcmain.cpp they have to be computed \
now kdevelop (cpp support): background-parser is missing the translation-unit. The \
file needs to be reparsed. kdevelop (cpp support): no global namespace was set, \
clearing cache kdevelop (cpp support): completion-cache emptied
kdevelop (cpp support): 0types in type-store before destruction
kdevelop (cpp support): [int CppCodeCompletion::expressionAt(const QString&, int)]
kdevelop (cpp support): startLine = int chmCalcMain::compute(char *f, bool \
subdivision, bool pP, bool pTib, bool pcF, bool ppF, bool pT, bool pMen, bool sdf50, \
bool visf, char *visfolder, char *dbip, char *dbname, char *dbtable, char *dbuser, \
char *study, bool tfiles, char *f2, bool compatibilityMode, bool foundedt, bool \
xffound, char *exportfolder, double xxres, double xyres, double xzres, bool corfound, \
bool foundpsf, bool resfound, bool xxp, bool xyp, bool xzp, bool iqcfound, bool \
srfound, bool ipfound, int pairwise, double tsize, double fsize, char patellaMode, \
bool lateralMark, bool pcp) QGVector::insert: Index 5000 out of range
QGVector::operator[]: Index 5000 out of range
==8656==
==8656== Invalid read of size 4
==8656==    at 0x562AE8B: QGVector::at(unsigned) const (in \
/usr/lib/libqt-mt.so.3.3.7) ==8656==    by 0x9422543: \
QPtrVector<Token>::operator[](int) const (qptrvector.h:83) ==8656==    by 0x9422583: \
Lexer::lookAhead(int) const (lexer.h:521) ==8656==    by 0x93FDFC2: \
Parser::nextToken(bool) (parser.cpp:1747) ==8656==    by 0x9400EBA: \
Parser::skipExpression(std::auto_ptr<AST>&) (parser.cpp:385) ==8656==    by \
0x9400FC9: Parser::skipCommaExpression(std::auto_ptr<AST>&) (parser.cpp:314) ==8656== \
by 0x9401313: Parser::skipExpressionStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2522) ==8656==    by 0x9417ABB: \
Parser::parseStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2598) ==8656==    by \
0x941ADC0: Parser::parseCompoundStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2805) ==8656==    by 0x9417A86: \
Parser::parseStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2586) ==8656==    by \
0x941A8BA: Parser::parseIfStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2848) \
==8656==    by 0x94174BD: Parser::parseStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2552) ==8656==  Address 0xCA52A50 is 0 bytes after a block of size 20,000 \
alloc'd ==8656==    at 0x401D38B: malloc (vg_replace_malloc.c:149)
==8656==    by 0x59267EF: QGVector::resize(unsigned) (in /usr/lib/libqt-mt.so.3.3.7)
==8656==    by 0x93EEF33: QPtrVector<Token>::resize(unsigned) (qptrvector.h:66)
==8656==    by 0x93E75CB: Lexer::nextToken(Token&, bool) (lexer.cpp:215)
==8656==    by 0x93E9C73: Lexer::tokenize() (lexer.cpp:495)
==8656==    by 0x93E9F49: Lexer::setSource(QString const&) (lexer.cpp:142)
==8656==    by 0x90F1E04: \
CppCodeCompletion::computeFunctionContext(KSharedPtr<FunctionModel>, int, int, \
SimpleTypeConfiguration&) (cppcodecompletion.cpp:1874) ==8656==    by 0x9103E42: \
CppCodeCompletion::evaluateExpressionType(int, int, SimpleTypeConfiguration&, \
CppCodeCompletion::EvaluateExpressionOptions) (cppcodecompletion.cpp:2168) ==8656==   \
by 0x91054D9: CppCodeCompletion::evaluateExpressionAt(int, int, \
SimpleTypeConfiguration&, bool) (cppcodecompletion.cpp:1437) ==8656==    by \
0x91057E8: CppCodeCompletion::createTypeInfoString(int, int) \
(cppcodecompletion.cpp:4409) ==8656==    by 0x916ACA5: \
CppSupportPart::slotCursorPositionChanged() (cppsupportpart.cpp:2678) ==8656==    by \
0x916D949: CppSupportPart::qt_invoke(int, QUObject*) (cppsupportpart.moc:375) \
==8656== ==8656== Invalid read of size 4
==8656==    at 0x93EA807: Token::operator int() const (lexer.h:390)
==8656==    by 0x9400EBA: Parser::skipExpression(std::auto_ptr<AST>&) \
(parser.cpp:385) ==8656==    by 0x9400FC9: \
Parser::skipCommaExpression(std::auto_ptr<AST>&) (parser.cpp:314) ==8656==    by \
0x9401313: Parser::skipExpressionStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2522) ==8656==    by 0x9417ABB: \
Parser::parseStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2598) ==8656==    by \
0x941ADC0: Parser::parseCompoundStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2805) ==8656==    by 0x9417A86: \
Parser::parseStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2586) ==8656==    by \
0x941A8BA: Parser::parseIfStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2848) \
==8656==    by 0x94174BD: Parser::parseStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2552) ==8656==    by 0x941ADC0: \
Parser::parseCompoundStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2805) \
==8656==    by 0x9417A86: Parser::parseStatement(std::auto_ptr<StatementAST>&) \
(parser.cpp:2586) ==8656==    by 0x941D048: \
Parser::parseForStatement(std::auto_ptr<StatementAST>&) (parser.cpp:2738) ==8656==  \
                Address 0x0 is not stack'd, malloc'd or (recently) free'd
KCrash: Application 'kdevelop' crashing...


traceback:
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1241311552 (LWP 14442)]
[New Thread -1271698512 (LWP 14464)]
[New Thread -1257157712 (LWP 14455)]
[KCrash handler]
#5  0xb516256b in Parser::nextToken () from /usr/lib/libkdevcppparser.so.0
#6  0xb51653ec in Parser::skipExpression ()
   from /usr/lib/libkdevcppparser.so.0
#7  0xb5165499 in Parser::skipCommaExpression ()
   from /usr/lib/libkdevcppparser.so.0
#8  0xb5165839 in Parser::skipExpressionStatement ()
   from /usr/lib/libkdevcppparser.so.0
#9  0xb517dae9 in Parser::parseStatement ()
   from /usr/lib/libkdevcppparser.so.0
#10 0xb5181eb3 in Parser::parseCompoundStatement ()
   from /usr/lib/libkdevcppparser.so.0
#11 0xb517d791 in Parser::parseStatement ()
   from /usr/lib/libkdevcppparser.so.0
#12 0xb5181918 in Parser::parseIfStatement ()
   from /usr/lib/libkdevcppparser.so.0
#13 0xb517dd92 in Parser::parseStatement ()
   from /usr/lib/libkdevcppparser.so.0
#14 0xb5181eb3 in Parser::parseCompoundStatement ()
   from /usr/lib/libkdevcppparser.so.0
#15 0xb517d791 in Parser::parseStatement ()
   from /usr/lib/libkdevcppparser.so.0
#16 0xb5184617 in Parser::parseForStatement ()
   from /usr/lib/libkdevcppparser.so.0
#17 0xb517d75b in Parser::parseStatement ()
   from /usr/lib/libkdevcppparser.so.0
#18 0xb517e073 in Parser::parseFunctionBody ()
   from /usr/lib/libkdevcppparser.so.0
#19 0xb517f3b0 in Parser::parseDeclarationInternal ()
   from /usr/lib/libkdevcppparser.so.0
#20 0xb51792dd in Parser::parseDeclaration ()
   from /usr/lib/libkdevcppparser.so.0
#21 0xb5335832 in CppCodeCompletion::computeFunctionContext ()
   from /usr/lib/kde3/libkdevcppsupport.so
#22 0xb5353fce in CppCodeCompletion::evaluateExpressionType ()
   from /usr/lib/kde3/libkdevcppsupport.so
#23 0xb5357f39 in CppCodeCompletion::evaluateExpressionAt ()
   from /usr/lib/kde3/libkdevcppsupport.so
#24 0xb535843c in CppCodeCompletion::createTypeInfoString ()
   from /usr/lib/kde3/libkdevcppsupport.so
#25 0xb53c69b8 in CppSupportPart::slotCursorPositionChanged ()
   from /usr/lib/kde3/libkdevcppsupport.so
#26 0xb53cd076 in CppSupportPart::qt_invoke ()
   from /usr/lib/kde3/libkdevcppsupport.so
#27 0xb6876d4f in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#28 0xb68777e0 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#29 0xb6c01faa in QTimer::timeout () from /usr/lib/libqt-mt.so.3
#30 0xb689e603 in QTimer::event () from /usr/lib/libqt-mt.so.3
#31 0xb680ec26 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#32 0xb6810a43 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#33 0xb6fdde0e in KApplication::notify () from /usr/lib/libkdecore.so.4
#34 0xb67a2421 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#35 0xb6801623 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#36 0xb67b676f in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#37 0xb6829179 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#38 0xb6828f9a in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#39 0xb68107bf in QApplication::exec () from /usr/lib/libqt-mt.so.3
#40 0x0804e5b8 in main ()

_______________________________________________
KDevelop-bugs mailing list
KDevelop-bugs@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic