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

Crash when opening a specific C++ file

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • Qt Creator 2.8.1
    • Qt Creator 2.8.0, Qt Creator 3.0.0-rc1
    • C/C++/Obj-C++ Support
    • None
    • Linux OpenSUSE 12.3, x86_64, Qt-4.8.4 (from OpenSUSE rpms).
    • f4c6eae3bb304d990a1758960b8e902496a75bdc

    Description

      QtCreator crashes upon opening a C++ file (that I can't share unfortunately). The reason is the attempt to use an empty scope pointer in typedefsFromScopeUpToFunctionScope.

      The empty scope pointer comes from a type representation (LookupItem) built around a template parameter, for which the LookupItem data structure seems to initialize only the name. All attributes (binding, declaration, scope) and flags (inside "type" attribute) are null. I've put the data structure dump after the traceback.

      Traceback:

      0	typedefsFromScopeUpToFunctionScope	ResolveExpression.cpp	915	0x7fffe40108ff	
      1	getNamedTypeItems	ResolveExpression.cpp	899	0x7fffe40108ff	
      2	resolve	ResolveExpression.cpp	874	0x7fffe40108ff	
      3	CPlusPlus::ResolveExpression::baseExpression	ResolveExpression.cpp	1008	0x7fffe40108ff	
      4	CPlusPlus::ResolveExpression::visit	ResolveExpression.cpp	841	0x7fffe4012a2b	
      5	CPlusPlus::MemberAccessAST::accept0	ASTVisit.cpp	745	0x7fffe3f9efa3	
      6	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      7	CPlusPlus::ResolveExpression::expression	ResolveExpression.cpp	118	0x7fffe4011b19	
      8	CPlusPlus::ResolveExpression::resolve	ResolveExpression.cpp	107	0x7fffe4011e36	
      9	CPlusPlus::ResolveExpression::operator()	ResolveExpression.cpp	94	0x7fffe40129cc	
      10	CPlusPlus::TypeOfExpression::operator()	TypeOfExpression.cpp	119	0x7fffe4009d6d	
      11	CPlusPlus::TypeOfExpression::operator()	TypeOfExpression.cpp	88	0x7fffe400bf12	
      12	CppTools::CheckSymbols::visit	cppchecksymbols.cpp	599	0x7fffe45c1e58	
      13	CPlusPlus::CallAST::accept0	ASTVisit.cpp	719	0x7fffe3f9ee39	
      14	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      15	accept	AST.h	93	0x7fffe3f9cc88	
      16	CPlusPlus::DeclaratorAST::accept0	ASTVisit.cpp	97	0x7fffe3f9cc88	
      17	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      18	CppTools::CheckSymbols::visit	cppchecksymbols.cpp	544	0x7fffe45c1934	
      19	CPlusPlus::SimpleDeclarationAST::accept0	ASTVisit.cpp	104	0x7fffe3f9cca9	
      20	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      21	accept	AST.h	93	0x7fffe3f9d941	
      22	CPlusPlus::DeclarationStatementAST::accept0	ASTVisit.cpp	334	0x7fffe3f9d941	
      23	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      24	accept	AST.h	93	0x7fffe3f9d6d9	
      25	accept<CPlusPlus::StatementAST*>	AST.h	99	0x7fffe3f9d6d9	
      26	CPlusPlus::CompoundStatementAST::accept0	ASTVisit.cpp	290	0x7fffe3f9d6d9	
      27	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      28	accept	AST.h	93	0x7fffe3f9e382	
      29	CPlusPlus::IfStatementAST::accept0	ASTVisit.cpp	518	0x7fffe3f9e382	
      30	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      31	accept	AST.h	93	0x7fffe3f9d6d9	
      32	accept<CPlusPlus::StatementAST*>	AST.h	99	0x7fffe3f9d6d9	
      33	CPlusPlus::CompoundStatementAST::accept0	ASTVisit.cpp	290	0x7fffe3f9d6d9	
      34	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      35	accept	AST.h	93	0x7fffe3f9e382	
      36	CPlusPlus::IfStatementAST::accept0	ASTVisit.cpp	518	0x7fffe3f9e382	
      37	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      38	accept	AST.h	93	0x7fffe3f9d6d9	
      39	accept<CPlusPlus::StatementAST*>	AST.h	99	0x7fffe3f9d6d9	
      40	CPlusPlus::CompoundStatementAST::accept0	ASTVisit.cpp	290	0x7fffe3f9d6d9	
      41	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      42	CppTools::CheckSymbols::visit	cppchecksymbols.cpp	1063	0x7fffe45c3e7b	
      43	CPlusPlus::FunctionDefinitionAST::accept0	ASTVisit.cpp	471	0x7fffe3f9e0a9	
      44	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      45	accept	AST.h	93	0x7fffe3f9f939	
      46	accept<CPlusPlus::DeclarationAST*>	AST.h	99	0x7fffe3f9f939	
      47	CPlusPlus::TranslationUnitAST::accept0	ASTVisit.cpp	928	0x7fffe3f9f939	
      48	CPlusPlus::AST::accept	AST.cpp	51	0x7fffe3f98ed4	
      49	CppTools::CheckSymbols::run	cppchecksymbols.cpp	338	0x7fffe45c0b77	
      50	??	/usr/lib64/libQtCore.so.4		0x7ffff6306c9d	
      51	??	/usr/lib64/libQtCore.so.4		0x7ffff63130cc	
      52	start_thread	/lib64/libpthread.so.0		0x7ffff607ce0f	
      53	clone	/lib64/libc.so.6		0x7ffff55967dd	
      
      
      	Locals		
      		baseResults	<1 items>	QList<CPlusPlus::LookupItem>
      			[0]	@0x7fffc24cc4b0	CPlusPlus::LookupItem
      				_binding	0x0	CPlusPlus::ClassOrNamespace *
      				_declaration	0x0	CPlusPlus::Symbol *
      				_scope	0x0	CPlusPlus::Scope *
      				_type	@0x7fffc24cc4b0	CPlusPlus::FullySpecifiedType
      					_flags	0	unsigned int
      					_type	"TypeSommet"	CPlusPlus::NamedType
      						[CPlusPlus::Type]		CPlusPlus::Type
      							[vptr]	0x7fffe42c4810 <vtable for CPlusPlus::NamedType+16>	
      								[0]	0x7fffe3fbb100 <CPlusPlus::NamedType::~NamedType()>	
      								[1]	0x7fffe3fbb120 <CPlusPlus::NamedType::~NamedType()>	
      								[2]	0x7fffe3fbb8b0 <CPlusPlus::Type::asUndefinedType() const>	
      								[3]	0x7fffe3fbb8c0 <CPlusPlus::Type::asVoidType() const>	
      								[4]	0x7fffe3fbb8d0 <CPlusPlus::Type::asIntegerType() const>	
      								[5]	0x7fffe3fbb8e0 <CPlusPlus::Type::asFloatType() const>	
      								[6]	0x7fffe3fbb8f0 <CPlusPlus::Type::asPointerType() const>	
      								[7]	0x7fffe3fbb900 <CPlusPlus::Type::asPointerToMemberType() const>	
      								[8]	0x7fffe3fbb910 <CPlusPlus::Type::asReferenceType() const>	
      								[9]	0x7fffe3fbb920 <CPlusPlus::Type::asArrayType() const>	
      								[10]	0x7fffe3fbbc30 <CPlusPlus::NamedType::asNamedType() const>	
      								[11]	0x7fffe3fbb940 <CPlusPlus::Type::asFunctionType() const>	
      								[12]	0x7fffe3fbb950 <CPlusPlus::Type::asNamespaceType() const>	
      								[13]	0x7fffe3fbb960 <CPlusPlus::Type::asTemplateType() const>	
      								[14]	0x7fffe3fbb970 <CPlusPlus::Type::asClassType() const>	
      								[15]	0x7fffe3fbb980 <CPlusPlus::Type::asEnumType() const>	
      								[16]	0x7fffe3fbb990 <CPlusPlus::Type::asForwardClassDeclarationType() const>	
      								[17]	0x7fffe3fbb9a0 <CPlusPlus::Type::asObjCClassType() const>	
      								[18]	0x7fffe3fbb9b0 <CPlusPlus::Type::asObjCProtocolType() const>	
      								[19]	0x7fffe3fbb9c0 <CPlusPlus::Type::asObjCMethodType() const>	
      								[20]	0x7fffe3fbb9d0 <CPlusPlus::Type::asObjCForwardClassDeclarationType() const>	
      								[21]	0x7fffe3fbb9e0 <CPlusPlus::Type::asObjCForwardProtocolDeclarationType() const>	
      								[22]	0x7fffe3fbb9f0 <CPlusPlus::Type::asUndefinedType()>	
      								[23]	0x7fffe3fbba00 <CPlusPlus::Type::asVoidType()>	
      								[24]	0x7fffe3fbba10 <CPlusPlus::Type::asIntegerType()>	
      								[25]	0x7fffe3fbba20 <CPlusPlus::Type::asFloatType()>	
      								[26]	0x7fffe3fbba30 <CPlusPlus::Type::asPointerType()>	
      								[27]	0x7fffe3fbba40 <CPlusPlus::Type::asPointerToMemberType()>	
      								[28]	0x7fffe3fbba50 <CPlusPlus::Type::asReferenceType()>	
      								[29]	0x7fffe3fbba60 <CPlusPlus::Type::asArrayType()>	
      								[30]	0x7fffe3fbbc40 <CPlusPlus::NamedType::asNamedType()>	
      								[31]	0x7fffe3fbba80 <CPlusPlus::Type::asFunctionType()>	
      								[32]	0x7fffe3fbba90 <CPlusPlus::Type::asNamespaceType()>	
      								[33]	0x7fffe3fbbaa0 <CPlusPlus::Type::asTemplateType()>	
      								[34]	0x7fffe3fbbab0 <CPlusPlus::Type::asClassType()>	
      								[35]	0x7fffe3fbbac0 <CPlusPlus::Type::asEnumType()>	
      								[36]	0x7fffe3fbbad0 <CPlusPlus::Type::asForwardClassDeclarationType()>	
      								[37]	0x7fffe3fbbae0 <CPlusPlus::Type::asObjCClassType()>	
      								[38]	0x7fffe3fbbaf0 <CPlusPlus::Type::asObjCProtocolType()>	
      								[39]	0x7fffe3fbbb00 <CPlusPlus::Type::asObjCMethodType()>	
      								[40]	0x7fffe3fbbb10 <CPlusPlus::Type::asObjCForwardClassDeclarationType()>	
      								[41]	0x7fffe3fbbb20 <CPlusPlus::Type::asObjCForwardProtocolDeclarationType()>	
      								[42]	0x7fffe3fbb830 <CPlusPlus::NamedType::isEqualTo(CPlusPlus::Type const*) const>	
      								[43]	0x7fffe3fbb080 <CPlusPlus::NamedType::accept0(CPlusPlus::TypeVisitor*)>	
      								[44]	0x7fffe3fbb0a0 <CPlusPlus::NamedType::matchType0(CPlusPlus::Type const*, CPlusPlus::TypeMatcher*) const>	
      						_name	"TypeSommet"	CPlusPlus::Identifier
      							[CPlusPlus::Literal]	"TypeSommet"	CPlusPlus::Literal
      								[vptr]	0x7fffe42c4ad0 <vtable for CPlusPlus::Identifier+16>	
      								_chars	"TypeSommet"	char *
      								_hashCode	179421956	unsigned int
      								_index	0	unsigned int
      								_next	0x0	CPlusPlus::Literal *
      								_size	10	unsigned int
      							[CPlusPlus::Name]		CPlusPlus::Name
      					f	@0x7fffc24cc4b8	CPlusPlus::FullySpecifiedType::Flags
      						_isAuto	0	unsigned int
      						_isConst	0	unsigned int
      						_isDeprecated	0	unsigned int
      						_isExplicit	0	unsigned int
      						_isExtern	0	unsigned int
      						_isFinal	0	unsigned int
      						_isFriend	0	unsigned int
      						_isInline	0	unsigned int
      						_isMutable	0	unsigned int
      						_isOverride	0	unsigned int
      						_isRegister	0	unsigned int
      						_isSigned	0	unsigned int
      						_isStatic	0	unsigned int
      						_isTypedef	0	unsigned int
      						_isUnavailable	0	unsigned int
      						_isUnsigned	0	unsigned int
      						_isVirtual	0	unsigned int
      						_isVolatile	0	unsigned int
      

      Attachments

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

        Activity

          People

            kosjar Nikolai Kosjar
            tibirna Cristian Tibirna
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes