Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-2459

Segfault while parsing C/C++

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • Qt Creator 2.1.0
    • Qt Creator 2.1.0
    • C/C++/Obj-C++ Support
    • None
    • Arch linux, 64bit.
    • d09b5e9d365e3ce54078fb172c93b9584908bcad

    Description

      QtCreator master, updated as of the date of this report
      Compiled on 64bit linux, in debug mode.

      Source code which crashes, made with cmake
      Repository Root: https://svn.blender.org/svnroot/bf-blender
      Revision: 32114

      Load blender project, load bpy_rna.c, wait for 1min and it crashes every time.
      Oddly enough this crashes after the parse progress is done and it will happen even if the window is mimimized.
      When bpy_rna.c is loaded outside of the blender project there is no crash.

      gdb log -----

      CPlusPlus::SymbolTable::lookat (this=<value optimized out>, operatorId=CPlusPlus::OperatorNameId::ArrowOp) at ../../shared/cplusplus/Scope.cpp:198
      198 if (const OperatorNameId *op = identity->asOperatorNameId()) {
      (gdb) bt
      #0 CPlusPlus::SymbolTable::lookat (this=<value optimized out>, operatorId=CPlusPlus::OperatorNameId::ArrowOp) at ../../shared/cplusplus/Scope.cpp:198
      #1 0x00007fffec80bd37 in CPlusPlus::CreateBindings::lookupInScope (this=0x7fffdf429dd0, name=0x7fffe5b2c500, scope=0x7fffdcf37140, result=0x7fffe2ffc7e0, templateId=0x0, binding=0x7fffe5b47590) at LookupContext.cpp:487
      #2 0x00007fffec80d25d in CPlusPlus::ClassOrNamespace::lookup_helper (this=0x7fffe5b47590, name=0x7fffe5b2c500, binding=0x7fffe5b47590, result=0x7fffe2ffc7e0, processed=0x7fffe2ffc600, templateId=0x0) at LookupContext.cpp:464
      #3 0x00007fffec80d4b4 in CPlusPlus::ClassOrNamespace::lookup_helper (this=0x7fffe5b47590, name=0x7fffe5b2c500, searchInEnclosingScope=false) at LookupContext.cpp:431
      #4 0x00007fffec80d5eb in CPlusPlus::ClassOrNamespace::find (this=<value optimized out>, name=<value optimized out>) at LookupContext.cpp:405
      #5 0x00007fffec807f17 in CPlusPlus::ResolveExpression::baseExpression (this=0x7fffe2ffc9e0, baseResults=<value optimized out>, accessOp=17, replacedDotOperator=0x0) at ResolveExpression.cpp:656
      #6 0x00007fffec809243 in CPlusPlus::ResolveExpression::visit (this=0x7fffe2ffc9e0, ast=0x7fffe67e4df8) at ResolveExpression.cpp:616
      #7 0x00007fffec7a7c23 in CPlusPlus::MemberAccessAST::accept0 (this=0x7fffe67e4df8, visitor=0x7fffe2ffc9e0) at ../../shared/cplusplus/ASTVisit.cpp:716
      #8 0x00007fffec7a2074 in CPlusPlus::AST::accept (this=0x7fffe67e4df8, visitor=0x7fffe2ffc9e0) at ../../shared/cplusplus/AST.cpp:78
      #9 0x00007fffec808a59 in CPlusPlus::ResolveExpression::resolve (this=0x7fffe2ffc9e0, ast=0x7fffe67e4df8) at ResolveExpression.cpp:102
      #10 0x00007fffec8090b3 in CPlusPlus::ResolveExpression::resolve (this=0x7fffe2ffc9e0, ast=<value optimized out>, scope=<value optimized out>) at ResolveExpression.cpp:94
      #11 0x00007fffec809869 in CPlusPlus::ResolveExpression::operator() (this=<value optimized out>, ast=<value optimized out>, scope=<value optimized out>) at ResolveExpression.cpp:85
      #12 0x00007fffec802656 in CPlusPlus::TypeOfExpression::operator() (this=0x7fffdecff6a8, expression=<value optimized out>, document=<value optimized out>, scope=0x7fffdf2fa160) at TypeOfExpression.cpp:99
      #13 0x00007fffec80431d in CPlusPlus::TypeOfExpression::operator() (this=0x7fffdecff6a8, expression=<value optimized out>, scope=0x7fffdf2fa160, mode=<value optimized out>) at TypeOfExpression.cpp:84
      #14 0x00007fffec4488f1 in CPlusPlus::CheckSymbols::visit (this=0x7fffdecff620, ast=0x7fffdf2ec248) at cppchecksymbols.cpp:505
      #15 0x00007fffec7a7c23 in CPlusPlus::MemberAccessAST::accept0 (this=0x7fffdf2ec248, visitor=0x7fffdecff620) at ../../shared/cplusplus/ASTVisit.cpp:716
      #16 0x00007fffec7a2074 in CPlusPlus::AST::accept (this=0x7fffdf2ec248, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.cpp:78
      #17 0x00007fffec7a8271 in accept (this=0x7fffdf2ec280, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.h:121
      #18 CPlusPlus::NestedExpressionAST::accept0 (this=0x7fffdf2ec280, visitor=0x7fffdecff620) at ../../shared/cplusplus/ASTVisit.cpp:834
      #19 0x00007fffec7a2074 in CPlusPlus::AST::accept (this=0x7fffdf2ec280, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.cpp:78
      #20 0x00007fffec7a5ae9 in accept (this=0x7fffdf2ec0c0, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.h:121
      #21 CPlusPlus::DeclaratorAST::accept0 (this=0x7fffdf2ec0c0, visitor=0x7fffdecff620) at ../../shared/cplusplus/ASTVisit.cpp:98
      #22 0x00007fffec7a2074 in CPlusPlus::AST::accept (this=0x7fffdf2ec0c0, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.cpp:78
      #23 0x00007fffec7a5b72 in accept (this=0x7fffdf2ec2b8, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.h:121
      #24 accept<CPlusPlus::DeclaratorAST*> (this=0x7fffdf2ec2b8, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.h:127
      #25 CPlusPlus::SimpleDeclarationAST::accept0 (this=0x7fffdf2ec2b8, visitor=0x7fffdecff620) at ../../shared/cplusplus/ASTVisit.cpp:107
      #26 0x00007fffec7a2074 in CPlusPlus::AST::accept (this=0x7fffdf2ec2b8, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.cpp:78
      #27 0x00007fffec7a849a in accept (this=0x7fffdeca8a80, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.h:121
      #28 accept<CPlusPlus::DeclarationAST*> (this=0x7fffdeca8a80, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.h:127
      #29 CPlusPlus::TranslationUnitAST::accept0 (this=0x7fffdeca8a80, visitor=0x7fffdecff620) at ../../shared/cplusplus/ASTVisit.cpp:875
      #30 0x00007fffec7a2074 in CPlusPlus::AST::accept (this=0x7fffdeca8a80, visitor=0x7fffdecff620) at ../../shared/cplusplus/AST.cpp:78
      #31 0x00007fffec447cf5 in CPlusPlus::CheckSymbols::run (this=0x7fffdecff620) at cppchecksymbols.cpp:314
      #32 0x00007ffff67daae8 in ?? () from /usr/lib/libQtCore.so.4
      #33 0x00007ffff67e449e in ?? () from /usr/lib/libQtCore.so.4
      #34 0x00007ffff655bcb0 in start_thread () from /lib/libpthread.so.0
      #35 0x00007ffff5da77ad in clone () from /lib/libc.so.6
      #36 0x0000000000000000 in ?? ()
      (gdb) L
      193
      194 const unsigned h = operatorId % _hashSize;
      195 Symbol *symbol = _hash[h];
      196 for (; symbol; symbol = symbol->_next) {
      197 const Name *identity = symbol->unqualifiedName();
      198 if (const OperatorNameId *op = identity->asOperatorNameId())

      { 199 if (op->kind() == operatorId) 200 break; 201 }

      202 }
      (gdb) p identity
      $1 = (const CPlusPlus::Name *) 0x0
      (gdb) p operatorId
      $1 = CPlusPlus::OperatorNameId::ArrowOp

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            erikv Erik Verbruggen
            ideasman42 Campbell Barton
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes