Bug 378827

Summary: Kevelop 4.7, 5.0.x, and 5.1.0 crashes when background parsing is turned on for Unreal Engine 4
Product: [Developer tools] kdev-python Reporter: Michael G Hart <michael.george.hart>
Component: generalAssignee: Sven Brauch <mail>
Status: RESOLVED FIXED    
Severity: crash CC: mail, mail
Priority: HI Keywords: drkonqi
Version First Reported In: 5.1.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.1.2
Sentry Crash Report:
Attachments: attachment-7112-0.html

Description Michael G Hart 2017-04-16 01:55:54 UTC
Application: kdevelop (5.1.0)

Qt Version: 5.7.1
Frameworks Version: 5.32.0
Operating System: Linux 4.10.9-1-default x86_64
Distribution: "openSUSE Tumbleweed"

-- Information about the crash:
- What I was doing when the application crashed:
After downloading Unreal Engine 4 (UE4) version 4.15.1 then runing Setup.sh followed by GenerateProjectFiles.sh
Start Kdevelop 5 then navigate to the where github placed UE4 then import UE4.kdev4 with background parsing enabled. Eventually it will crash Kdevelop. It crashes version 4.7.x, and 5.x.y

FYI you can follow the instruction here if you want to debug UE4 and encounter some other odd issues http://www.imaginationsreality.com/debugging-unreal-engine-4-in-using-kdevelop/

The crash can be reproduced every time.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f74652d8900 (LWP 11018))]

Thread 24 (Thread 0x7f73b7643700 (LWP 15494)):
#0  0x00007f74204c2158 in clang::Lexer::LexTokenInternal(clang::Token&, bool) () at /usr/lib64/../lib64/libclangLex.so.3.9
#1  0x00007f74205143d4 in clang::Preprocessor::Lex(clang::Token&) () at /usr/lib64/../lib64/libclangLex.so.3.9
#2  0x00007f74204e26cf in clang::Preprocessor::CachingLex(clang::Token&) () at /usr/lib64/../lib64/libclangLex.so.3.9
#3  0x00007f7420514420 in clang::Preprocessor::Lex(clang::Token&) () at /usr/lib64/../lib64/libclangLex.so.3.9
#4  0x00007f7412f630e3 in  () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#5  0x00007f7412f619e8 in  () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#6  0x00007f7412f77135 in clang::Parser::ParseFunctionDeclarator(clang::Declarator&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&, bool, bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#7  0x00007f7412f75a6b in clang::Parser::ParseDirectDeclarator(clang::Declarator&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#8  0x00007f7412f749f3 in clang::Parser::ParseDeclaratorInternal(clang::Declarator&, void (clang::Parser::*)(clang::Declarator&)) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#9  0x00007f7412fd4d13 in clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#10 0x00007f7412fd4371 in clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#11 0x00007f7412fd3d66 in clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#12 0x00007f7412f67ad3 in clang::Parser::ParseDeclaration(unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#13 0x00007f7412fdf012 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#14 0x00007f7412fde50a in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#15 0x00007f7412f5be96 in clang::ParseAST(clang::Sema&, bool, bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#16 0x00007f7420a0f5fc in clang::FrontendAction::Execute() () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#17 0x00007f74209bcbe2 in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#18 0x00007f74209c1983 in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#19 0x00007f74209c25f7 in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, bool, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#20 0x00007f74215ccf1b in  () at /usr/lib64/libclang.so.3.9
#21 0x00007f7413e4b8d0 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#22 0x00007f7413e4b984 in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#23 0x00007f7413eaa4da in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#24 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#25 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 23 (Thread 0x7f73767fc700 (LWP 15491)):
#0  0x00007f7421236480 in clang::Decl::castFromDeclContext(clang::DeclContext const*) () at /usr/lib64/../lib64/libclangAST.so.3.9
#1  0x00007f7421245ce4 in clang::CXXMethodDecl::getThisType(clang::ASTContext&) const () at /usr/lib64/../lib64/libclangAST.so.3.9
#2  0x00007f741bb6218d in clang::Sema::getCurrentThisType() () at /usr/lib64/../lib64/libclangSema.so.3.9
#3  0x00007f741bb9fe19 in clang::Sema::BuildImplicitMemberExpr(clang::CXXScopeSpec const&, clang::SourceLocation, clang::LookupResult&, clang::TemplateArgumentListInfo const*, bool, clang::Scope const*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#4  0x00007f741bb9fcc4 in clang::Sema::BuildPossibleImplicitMemberExpr(clang::CXXScopeSpec const&, clang::SourceLocation, clang::LookupResult&, clang::TemplateArgumentListInfo const*, clang::Scope const*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#5  0x00007f741ba124fd in clang::Sema::ClassifyName(clang::Scope*, clang::CXXScopeSpec&, clang::IdentifierInfo*&, clang::SourceLocation, clang::Token const&, bool, std::unique_ptr<clang::CorrectionCandidateCallback, std::default_delete<clang::CorrectionCandidateCallback> >) () at /usr/lib64/../lib64/libclangSema.so.3.9
#6  0x00007f7412fe1d39 in clang::Parser::TryAnnotateName(bool, std::unique_ptr<clang::CorrectionCandidateCallback, std::default_delete<clang::CorrectionCandidateCallback> >) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#7  0x00007f7412fc7c93 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#8  0x00007f7412fc7a7c in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#9  0x00007f7412fcdb55 in clang::Parser::ParseCompoundStatementBody(bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#10 0x00007f7412fc7ed8 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#11 0x00007f7412fc7a7c in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#12 0x00007f7412fca033 in clang::Parser::ParseIfStatement(clang::SourceLocation*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#13 0x00007f7412fc8084 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#14 0x00007f7412fc7a7c in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#15 0x00007f7412fcdb55 in clang::Parser::ParseCompoundStatementBody(bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#16 0x00007f7412fce3b6 in clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#17 0x00007f7412f5f31d in clang::Parser::ParseLexedMethodDef(clang::Parser::LexedMethod&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#18 0x00007f7412f5e5fa in clang::Parser::ParseLexedMethodDefs(clang::Parser::ParsingClass&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#19 0x00007f7412f835ed in clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#20 0x00007f7412f820be in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#21 0x00007f7412f683ff in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#22 0x00007f7412fdfddf in clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#23 0x00007f7412fdfb18 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#24 0x00007f7412fdf105 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#25 0x00007f7412fde50a in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#26 0x00007f7412f5be96 in clang::ParseAST(clang::Sema&, bool, bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#27 0x00007f7420a0f5fc in clang::FrontendAction::Execute() () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#28 0x00007f74209bcbe2 in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#29 0x00007f74209c1983 in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#30 0x00007f74209c25f7 in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, bool, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#31 0x00007f74215ccf1b in  () at /usr/lib64/libclang.so.3.9
#32 0x00007f7413e4b8d0 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#33 0x00007f7413e4b984 in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#34 0x00007f7413eaa4da in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#35 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#36 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 22 (Thread 0x7f73b5b07700 (LWP 15480)):
#0  0x00007f742122e774 in clang::Decl::getASTContext() const () at /usr/lib64/../lib64/libclangAST.so.3.9
#1  0x00007f7421245c5b in clang::CXXMethodDecl::end_overridden_methods() const () at /usr/lib64/../lib64/libclangAST.so.3.9
#2  0x00007f741baa1033 in clang::Sema::CheckDestructor(clang::CXXDestructorDecl*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#3  0x00007f741baadc13 in clang::Sema::DefineImplicitDestructor(clang::SourceLocation, clang::CXXDestructorDecl*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#4  0x00007f741bb3278f in clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#5  0x00007f741ba9528e in clang::Sema::MarkBaseAndMemberDestructorsReferenced(clang::SourceLocation, clang::CXXRecordDecl*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#6  0x00007f741ba933a9 in clang::Sema::SetCtorInitializers(clang::CXXConstructorDecl*, bool, llvm::ArrayRef<clang::CXXCtorInitializer*>) () at /usr/lib64/../lib64/libclangSema.so.3.9
#7  0x00007f741ba96828 in clang::Sema::ActOnMemInitializers(clang::Decl*, clang::SourceLocation, llvm::ArrayRef<clang::CXXCtorInitializer*>, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#8  0x00007f741bd5b2d5 in clang::Sema::InstantiateMemInitializers(clang::CXXConstructorDecl*, clang::CXXConstructorDecl const*, clang::MultiLevelTemplateArgumentList const&) () at /usr/lib64/../lib64/libclangSema.so.3.9
#9  0x00007f741bd5a7af in clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#10 0x00007f741bd5589b in clang::Sema::PerformPendingInstantiations(bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#11 0x00007f741b9866df in clang::Sema::ActOnEndOfTranslationUnit() () at /usr/lib64/../lib64/libclangSema.so.3.9
#12 0x00007f7412fde485 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#13 0x00007f7412f5be96 in clang::ParseAST(clang::Sema&, bool, bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#14 0x00007f7420a0f5fc in clang::FrontendAction::Execute() () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#15 0x00007f74209bcbe2 in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#16 0x00007f74209c1983 in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#17 0x00007f74209c25f7 in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, bool, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#18 0x00007f74215ccf1b in  () at /usr/lib64/libclang.so.3.9
#19 0x00007f7413e4b8d0 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#20 0x00007f7413e4b984 in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#21 0x00007f7413eaa4da in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#22 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#23 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 21 (Thread 0x7f73777fe700 (LWP 15471)):
#0  0x00007f741bd2d3c2 in clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) () at /usr/lib64/../lib64/libclangSema.so.3.9
#1  0x00007f741bd55ce8 in clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*, llvm::SmallVectorImpl<clang::ParmVarDecl*>&) () at /usr/lib64/../lib64/libclangSema.so.3.9
#2  0x00007f741bd53712 in clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*, clang::TemplateParameterList*, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#3  0x00007f741bd309f6 in clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#4  0x00007f741bd32473 in clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#5  0x00007f741bd8053f in clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#6  0x00007f741bd7ff70 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) () at /usr/lib64/../lib64/libclangSema.so.3.9
#7  0x00007f741bd74552 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, unsigned int) () at /usr/lib64/../lib64/libclangSema.so.3.9
#8  0x00007f741ba4ef53 in clang::Sema::CheckFieldDecl(clang::DeclarationName, clang::QualType, clang::TypeSourceInfo*, clang::RecordDecl*, clang::SourceLocation, bool, clang::Expr*, clang::InClassInitStyle, clang::SourceLocation, clang::AccessSpecifier, clang::NamedDecl*, clang::Declarator*) () at /usr/lib64/../lib64/libclangSema.so.3.9
#9  0x00007f741ba4ee18 in clang::Sema::HandleField(clang::Scope*, clang::RecordDecl*, clang::SourceLocation, clang::Declarator&, clang::Expr*, clang::InClassInitStyle, clang::AccessSpecifier) () at /usr/lib64/../lib64/libclangSema.so.3.9
#10 0x00007f741ba8f02d in clang::Sema::ActOnCXXMemberDeclarator(clang::Scope*, clang::AccessSpecifier, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Expr*, clang::VirtSpecifiers const&, clang::InClassInitStyle) () at /usr/lib64/../lib64/libclangSema.so.3.9
#11 0x00007f7412f86a53 in clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#12 0x00007f7412f87fc3 in clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::Parser::ParsedAttributesWithRange&, clang::TypeSpecifierType, clang::Decl*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#13 0x00007f7412f83445 in clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#14 0x00007f7412f820be in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#15 0x00007f7412f683ff in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#16 0x00007f7412fdfddf in clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#17 0x00007f7412fdfb18 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#18 0x00007f7412fdf105 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#19 0x00007f7412fde50a in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#20 0x00007f7412f5be96 in clang::ParseAST(clang::Sema&, bool, bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#21 0x00007f7420a0f5fc in clang::FrontendAction::Execute() () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#22 0x00007f74209bcbe2 in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#23 0x00007f74209c1983 in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#24 0x00007f74209c25f7 in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, bool, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#25 0x00007f74215ccf1b in  () at /usr/lib64/libclang.so.3.9
#26 0x00007f7413e4b8d0 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#27 0x00007f7413e4b984 in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#28 0x00007f7413eaa4da in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#29 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#30 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 20 (Thread 0x7f73d67fc700 (LWP 15455)):
#0  0x00007f742117ac81 in clang::ASTContext::getDeclAttrs(clang::Decl const*) () at /usr/lib64/../lib64/libclangAST.so.3.9
#1  0x00007f741bc64e73 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#2  0x00007f741bc64550 in clang::Sema::CheckEnableIf(clang::FunctionDecl*, llvm::ArrayRef<clang::Expr*>, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#3  0x00007f741bc7b632 in clang::Sema::BuildCallToMemberFunction(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) () at /usr/lib64/../lib64/libclangSema.so.3.9
#4  0x00007f741bb001af in clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#5  0x00007f741bd39749 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#6  0x00007f741bd32f58 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#7  0x00007f741bd43ce1 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#8  0x00007f741bd46a02 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#9  0x00007f741bd43ce1 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#10 0x00007f741bd46a02 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#11 0x00007f741bd43ce1 in  () at /usr/lib64/../lib64/libclangSema.so.3.9
#12 0x00007f741bd32f01 in clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) () at /usr/lib64/../lib64/libclangSema.so.3.9
#13 0x00007f741bd5a7c7 in clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#14 0x00007f741bd5589b in clang::Sema::PerformPendingInstantiations(bool) () at /usr/lib64/../lib64/libclangSema.so.3.9
#15 0x00007f741b9866df in clang::Sema::ActOnEndOfTranslationUnit() () at /usr/lib64/../lib64/libclangSema.so.3.9
#16 0x00007f7412fde485 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#17 0x00007f7412f5be96 in clang::ParseAST(clang::Sema&, bool, bool) () at /usr/lib64/../lib64/../lib64/libclangParse.so.3.9
#18 0x00007f7420a0f5fc in clang::FrontendAction::Execute() () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#19 0x00007f74209bcbe2 in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#20 0x00007f74209c1983 in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#21 0x00007f74209c25f7 in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, bool, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*) () at /usr/lib64/../lib64/libclangFrontend.so.3.9
#22 0x00007f74215ccf1b in  () at /usr/lib64/libclang.so.3.9
#23 0x00007f7413e4b8d0 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#24 0x00007f7413e4b984 in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#25 0x00007f7413eaa4da in  () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#26 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#27 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 19 (Thread 0x7f73b67fc700 (LWP 11239)):
#0  0x00007f74620527bd in poll () at /lib64/libc.so.6
#1  0x00007f745990da86 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f7460298f3f in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#7  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 18 (Thread 0x7f73d57fa700 (LWP 11218)):
#0  0x00007f745990ab3b in  () at /usr/lib64/libglib-2.0.so.0
#1  0x00007f745990d078 in g_main_context_prepare () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990d9ab in  () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#4  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#6  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#7  0x00007f7460298f3f in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#8  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#9  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 17 (Thread 0x7f73d6ffd700 (LWP 11167)):
#0  0x00007f745990aab6 in  () at /usr/lib64/libglib-2.0.so.0
#1  0x00007f745990cf1b in g_main_context_prepare () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990d9ab in  () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#4  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#6  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#7  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 16 (Thread 0x7f73d7fff700 (LWP 11134)):
#0  0x00007f745bb8f7cd in pthread_join () at /lib64/libpthread.so.0
#1  0x00007f7413eaa4bc in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#2  0x00007f7413e4b94f in llvm::CrashRecoveryContext::RunSafelyOnThread(llvm::function_ref<void ()>, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#3  0x00007f74215bc7c5 in clang_parseTranslationUnit2FullArgv () at /usr/lib64/libclang.so.3.9
#4  0x00007f74215bc484 in clang_parseTranslationUnit2 () at /usr/lib64/libclang.so.3.9
#5  0x00007f74218adda1 in ParseSessionData::ParseSessionData(QVector<UnsavedFile> const&, ClangIndex*, ClangParsingEnvironment const&, QFlags<ParseSessionData::Option>) () at /usr/lib64/libKDevClangPrivate.so.27
#6  0x00007f7421aeec63 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#7  0x00007f7421af2739 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#8  0x00007f7456dbb18a in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#9  0x00007f7456dbb798 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#10 0x00007f7456dba2e0 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#11 0x00007f7456db9df0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#12 0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#14 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 15 (Thread 0x7f73f8ff9700 (LWP 11133)):
#0  0x00007f745bb8f7cd in pthread_join () at /lib64/libpthread.so.0
#1  0x00007f7413eaa4bc in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#2  0x00007f7413e4b94f in llvm::CrashRecoveryContext::RunSafelyOnThread(llvm::function_ref<void ()>, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#3  0x00007f74215bc7c5 in clang_parseTranslationUnit2FullArgv () at /usr/lib64/libclang.so.3.9
#4  0x00007f74215bc484 in clang_parseTranslationUnit2 () at /usr/lib64/libclang.so.3.9
#5  0x00007f74218adda1 in ParseSessionData::ParseSessionData(QVector<UnsavedFile> const&, ClangIndex*, ClangParsingEnvironment const&, QFlags<ParseSessionData::Option>) () at /usr/lib64/libKDevClangPrivate.so.27
#6  0x00007f7421aeec63 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#7  0x00007f7421af2739 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#8  0x00007f7456dbb18a in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#9  0x00007f7456dbb798 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#10 0x00007f7456dba2e0 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#11 0x00007f7456db9df0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#12 0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#14 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 14 (Thread 0x7f73f97fa700 (LWP 11132)):
#0  0x00007f745bb949a6 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f746275237b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5
#2  0x00007f7456db7e60 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#3  0x00007f7456dbc018 in  () at /usr/lib64/libKF5ThreadWeaver.so.5
#4  0x00007f7456db6fdd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#5  0x00007f7456db9ea9 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#6  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#7  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#8  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 13 (Thread 0x7f73f9ffb700 (LWP 11131)):
#0  0x00007f745bb949a6 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f746275237b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5
#2  0x00007f7456db7e60 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#3  0x00007f7456dbc018 in  () at /usr/lib64/libKF5ThreadWeaver.so.5
#4  0x00007f7456db6fdd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#5  0x00007f7456db9ea9 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#6  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#7  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#8  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 12 (Thread 0x7f73fa7fc700 (LWP 11130)):
#0  0x00007f745bb8f7cd in pthread_join () at /lib64/libpthread.so.0
#1  0x00007f7413eaa4bc in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#2  0x00007f7413e4b94f in llvm::CrashRecoveryContext::RunSafelyOnThread(llvm::function_ref<void ()>, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#3  0x00007f74215bc7c5 in clang_parseTranslationUnit2FullArgv () at /usr/lib64/libclang.so.3.9
#4  0x00007f74215bc484 in clang_parseTranslationUnit2 () at /usr/lib64/libclang.so.3.9
#5  0x00007f74218adda1 in ParseSessionData::ParseSessionData(QVector<UnsavedFile> const&, ClangIndex*, ClangParsingEnvironment const&, QFlags<ParseSessionData::Option>) () at /usr/lib64/libKDevClangPrivate.so.27
#6  0x00007f7421aeec63 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#7  0x00007f7421af2739 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#8  0x00007f7456dbb18a in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#9  0x00007f7456dbb798 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#10 0x00007f7456dba2e0 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#11 0x00007f7456db9df0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#12 0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#14 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 11 (Thread 0x7f73faffd700 (LWP 11129)):
#0  0x00007f745bb8f7cd in pthread_join () at /lib64/libpthread.so.0
#1  0x00007f7413eaa4bc in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#2  0x00007f7413e4b94f in llvm::CrashRecoveryContext::RunSafelyOnThread(llvm::function_ref<void ()>, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#3  0x00007f74215bc7c5 in clang_parseTranslationUnit2FullArgv () at /usr/lib64/libclang.so.3.9
#4  0x00007f74215bc484 in clang_parseTranslationUnit2 () at /usr/lib64/libclang.so.3.9
#5  0x00007f74218adda1 in ParseSessionData::ParseSessionData(QVector<UnsavedFile> const&, ClangIndex*, ClangParsingEnvironment const&, QFlags<ParseSessionData::Option>) () at /usr/lib64/libKDevClangPrivate.so.27
#6  0x00007f7421aeec63 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#7  0x00007f7421af2739 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#8  0x00007f7456dbb18a in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#9  0x00007f7456dbb798 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#10 0x00007f7456dba2e0 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#11 0x00007f7456db9df0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#12 0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#14 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 10 (Thread 0x7f73fb7fe700 (LWP 11128)):
#0  0x00007f745bb949a6 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f746275237b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5
#2  0x00007f7456db7e60 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#3  0x00007f7456dbc018 in  () at /usr/lib64/libKF5ThreadWeaver.so.5
#4  0x00007f7456db6fdd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#5  0x00007f7456dbc072 in  () at /usr/lib64/libKF5ThreadWeaver.so.5
#6  0x00007f7456db6fdd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5
#7  0x00007f7456db9ea9 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#8  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#9  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 9 (Thread 0x7f73fbfff700 (LWP 11127)):
[KCrash Handler]
#6  0x00007f7423b32966 in  () at /usr/lib64/libkdevpythonparser.so
#7  0x00007f7423b39409 in  () at /usr/lib64/libkdevpythonparser.so
#8  0x00007f7423b2ab0c in Python::AstDefaultVisitor::visitCode(Python::CodeAst*) () at /usr/lib64/libkdevpythonparser.so
#9  0x00007f7423b2fd45 in Python::AstBuilder::parse(QUrl const&, QString&) () at /usr/lib64/libkdevpythonparser.so
#10 0x00007f7423b28c7d in Python::ParseSession::parse() () at /usr/lib64/libkdevpythonparser.so
#11 0x00007f73d4baa39f in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevpythonlanguagesupport.so
#12 0x00007f7456dbb18a in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#13 0x00007f7456dbb798 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#14 0x00007f7456dba2e0 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#15 0x00007f7456db9df0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#16 0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#17 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#18 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 8 (Thread 0x7f74037fe700 (LWP 11126)):
#0  0x00007f745bb8f7cd in pthread_join () at /lib64/libpthread.so.0
#1  0x00007f7413eaa4bc in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#2  0x00007f7413e4b94f in llvm::CrashRecoveryContext::RunSafelyOnThread(llvm::function_ref<void ()>, unsigned int) () at /usr/lib64/../lib64/libLLVMSupport.so.3.9
#3  0x00007f74215bc7c5 in clang_parseTranslationUnit2FullArgv () at /usr/lib64/libclang.so.3.9
#4  0x00007f74215bc484 in clang_parseTranslationUnit2 () at /usr/lib64/libclang.so.3.9
#5  0x00007f74218adda1 in ParseSessionData::ParseSessionData(QVector<UnsavedFile> const&, ClangIndex*, ClangParsingEnvironment const&, QFlags<ParseSessionData::Option>) () at /usr/lib64/libKDevClangPrivate.so.27
#6  0x00007f7421aeec63 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#7  0x00007f7421af2739 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#8  0x00007f7456dbb18a in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#9  0x00007f7456dbb798 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#10 0x00007f7456dba2e0 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#11 0x00007f7456db9df0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#12 0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#14 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7f7403fff700 (LWP 11049)):
#0  0x00007f74620527bd in poll () at /lib64/libc.so.6
#1  0x00007f745990da86 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f74579d9305 in  () at /usr/lib64/libQt5Qml.so.5
#7  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f740a266700 (LWP 11025)):
#0  0x00007f74620527bd in poll () at /lib64/libc.so.6
#1  0x00007f745990da86 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f7460298f3f in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#7  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f7422c57700 (LWP 11024)):
#0  0x00007f74620527bd in poll () at /lib64/libc.so.6
#1  0x00007f745990da86 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f7460298f3f in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#7  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f742ea29700 (LWP 11022)):
#0  0x00007f745bb94db3 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f74627522b6 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5
#2  0x00007f746019dcd8 in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#3  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#4  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#5  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f7440e8e700 (LWP 11021)):
#0  0x00007f74599533a9 in g_mutex_lock () at /usr/lib64/libglib-2.0.so.0
#1  0x00007f745990cf89 in g_main_context_prepare () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f745990d9ab in  () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#4  0x00007f746297518b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#6  0x00007f746274c813 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#7  0x00007f7464473385 in  () at /usr/lib64/libQt5DBus.so.5
#8  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#9  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f7442c85700 (LWP 11020)):
#0  0x00007f74620527bd in poll () at /lib64/libc.so.6
#1  0x00007f745220e3e0 in  () at /usr/lib64/libxcb.so.1
#2  0x00007f7452210179 in xcb_wait_for_event () at /usr/lib64/libxcb.so.1
#3  0x00007f7445823889 in  () at /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007f74627514c8 in  () at /usr/lib64/libQt5Core.so.5
#5  0x00007f745bb8e537 in start_thread () at /lib64/libpthread.so.0
#6  0x00007f746205c04f in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f74652d8900 (LWP 11018)):
#0  0x00007f7461fed3dc in malloc () at /lib64/libc.so.6
#1  0x00007f74627526fc in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) () at /usr/lib64/libQt5Core.so.5
#2  0x00007f74627d733f in QString::reallocData(unsigned int, bool) () at /usr/lib64/libQt5Core.so.5
#3  0x00007f74627d7488 in QString::resize(int) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f74627e1ed1 in operator>>(QDataStream&, QString&) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f74003a27e1 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevdefinesandincludesmanager.so
#6  0x00007f740039f7e9 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevdefinesandincludesmanager.so
#7  0x00007f74003a1aeb in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevdefinesandincludesmanager.so
#8  0x00007f740037d690 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevdefinesandincludesmanager.so
#9  0x00007f7421aef4c9 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#10 0x00007f7421af8b76 in  () at /usr/lib64/qt5/plugins/kdevplatform/27/kdevclangsupport.so
#11 0x00007f746016eb52 in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#12 0x00007f7460171ade in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#13 0x00007f746016b664 in KDevelop::BackgroundParser::parseDocuments() () at /usr/lib64/libKDevPlatformLanguage.so.10
#14 0x00007f74602fc935 in  () at /usr/lib64/libKDevPlatformLanguage.so.10
#15 0x00007f746294d5b9 in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5
#16 0x00007f746360eeac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#17 0x00007f7463616661 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#18 0x00007f7462920b00 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#19 0x00007f746292328d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#20 0x00007f7462974d63 in  () at /usr/lib64/libQt5Core.so.5
#21 0x00007f745990d887 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#22 0x00007f745990daf0 in  () at /usr/lib64/libglib-2.0.so.0
#23 0x00007f745990db9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#24 0x00007f746297516f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#25 0x00007f746291eaea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#26 0x00007f746292725c in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#27 0x000000000040c0dc in  ()
#28 0x00007f7461f8f541 in __libc_start_main () at /lib64/libc.so.6
#29 0x000000000040c71a in _start ()

Reported using DrKonqi
Comment 1 Kevin Funk 2017-04-17 15:40:29 UTC
Crash in kdev-python, moving ticket.
Comment 2 Sven Brauch 2017-04-17 16:02:02 UTC
Do you have debug symbols by any chance? Otherwise I can also try to reproduce this ...
Comment 3 Michael G Hart 2017-04-17 17:44:14 UTC
Created attachment 105062 [details]
attachment-7112-0.html

Sorry but I don't have anything bug in symbols. However with all the
versions of kdevelop I tried I got the same failure wedding background
parsing was turned on
So I would be very surprised if you cannot replicate the problem.


On Apr 17, 2017 12:02 PM, "Sven Brauch" <bugzilla_noreply@kde.org> wrote:

> https://bugs.kde.org/show_bug.cgi?id=378827
>
> --- Comment #2 from Sven Brauch <mail@svenbrauch.de> ---
> Do you have debug symbols by any chance? Otherwise I can also try to
> reproduce
> this ...
>
> --
> You are receiving this mail because:
> You reported the bug.
Comment 4 Sven Brauch 2017-04-17 18:25:29 UTC
Alright thanks, I'll try ASAP
Comment 5 Francis Herne 2017-05-01 21:27:08 UTC
Reproducible with UE master and kdev-python 5.1-git.
=======

 ====> AST     ====>     building abstract syntax tree for  "/home/flh/projects/UnrealEngine/Engine/Extras/Maya_AnimationRiggingTools/ArtToolsOSX/MayaTools/General/Scripts/Modules/ART_Core.py"
Got syntax tree from python parser: 1 1
ASSERT: "uint(i) < uint(size())" in file /usr/include/qt/QtCore/qstring.h, line 897

Thread 7 "Queue(0x8ab900)" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffc4c43700 (LWP 27501)]
0x00007fffef245a10 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007fffef245a10 in raise () at /usr/lib/libc.so.6
#1  0x00007fffef24713a in abort () at /usr/lib/libc.so.6
#2  0x00000000004058d6 in messageOutput(QtMsgType, QMessageLogContext const&, QString const&) (type=<optimized out>, context=..., msg=...)
    at /home/flh/projects/kdevplatform/util/duchainify/main.cpp:79
#3  0x00007fffefefa298 in  () at /usr/lib/libQt5Core.so.5
#4  0x00007fffefefbe09 in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/libQt5Core.so.5
#5  0x00007fffefef73de in  () at /usr/lib/libQt5Core.so.5
#6  0x00007fffc68d13bc in QString::at(int) const (this=0x7fffc4c41360, i=-1) at /usr/include/qt/QtCore/qstring.h:897
#7  0x00007fffc68e20af in Python::RangeFixVisitor::whitespaceAtEnd(QString const&) (this=0x7fffc4c41670, line=...) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:443
#8  0x00007fffc68e1fd6 in Python::RangeFixVisitor::fixAlias(Python::Ast*, Python::Ast*, int, int) (this=0x7fffc4c41670, dotted=0x7fffb8042fb0, asname=0x7fffb8042ff0, startLine=1, aliasIndex=0)
    at /home/flh/projects/kdev-python/parser/astbuilder.cpp:433
#9  0x00007fffc68e12c4 in Python::RangeFixVisitor::visitImport(Python::ImportAst*) (this=0x7fffc4c41670, node=0x7fffb8059db0) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:209
#10 0x00007fffc68dbddc in Python::AstVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8059db0) at /home/flh/projects/kdev-python/parser/astvisitor.cpp:57
#11 0x00007fffc68e0c55 in Python::RangeFixVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8059db0) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:104
#12 0x00007fffc68d5f3b in Python::AstDefaultVisitor::visitCode(Python::CodeAst*) (this=0x7fffc4c41670, node=0x7fffb8051510) at /home/flh/projects/kdev-python/parser/astdefaultvisitor.cpp:94
#13 0x00007fffc68dbba4 in Python::AstVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8051510) at /home/flh/projects/kdev-python/parser/astvisitor.cpp:41
#14 0x00007fffc68e0c55 in Python::RangeFixVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8051510) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:104
#15 0x00007fffc68df46b in Python::AstBuilder::parse(QUrl const&, QString&) (this=0x7fffc4c41d90, filename=..., contents=...) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:757
#16 0x00007fffc68d3909 in Python::ParseSession::parse() (this=0x7fffb8003900) at /home/flh/projects/kdev-python/parser/parsesession.cpp:76
#17 0x00007fffc6d6dc24 in Python::ParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0xb72e20) at /home/flh/projects/kdev-python/pythonparsejob.cpp:157
#18 0x00007ffff60ee5d6 in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#19 0x00007ffff60eebd8 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#20 0x00007ffff60edaea in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#21 0x00007ffff60ed190 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5
#22 0x00007fffeff156d8 in  () at /usr/lib/libQt5Core.so.5
#23 0x00007fffe72ba2e7 in start_thread () at /usr/lib/libpthread.so.0
#24 0x00007fffef2fe54f in clone () at /usr/lib/libc.so.6
(gdb) bt full
#0  0x00007fffef245a10 in raise () at /usr/lib/libc.so.6
#1  0x00007fffef24713a in abort () at /usr/lib/libc.so.6
#2  0x00000000004058d6 in messageOutput(QtMsgType, QMessageLogContext const&, QString const&) (type=<optimized out>, context=..., msg=...)
    at /home/flh/projects/kdevplatform/util/duchainify/main.cpp:79
#3  0x00007fffefefa298 in  () at /usr/lib/libQt5Core.so.5
#4  0x00007fffefefbe09 in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/libQt5Core.so.5
#5  0x00007fffefef73de in  () at /usr/lib/libQt5Core.so.5
#6  0x00007fffc68d13bc in QString::at(int) const (this=0x7fffc4c41360, i=-1) at /usr/include/qt/QtCore/qstring.h:897
#7  0x00007fffc68e20af in Python::RangeFixVisitor::whitespaceAtEnd(QString const&) (this=0x7fffc4c41670, line=...) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:443
        i = 0
#8  0x00007fffc68e1fd6 in Python::RangeFixVisitor::fixAlias(Python::Ast*, Python::Ast*, int, int) (this=0x7fffc4c41670, dotted=0x7fffb8042fb0, asname=0x7fffb8042ff0, startLine=1, aliasIndex=0)
    at /home/flh/projects/kdev-python/parser/astbuilder.cpp:433
        line = {static null = {<No data fields>}, d = 0x7ffff019b420}
        lineno = 1
        end = -993782736
        back = 32767
#9  0x00007fffc68e12c4 in Python::RangeFixVisitor::visitImport(Python::ImportAst*) (this=0x7fffc4c41670, node=0x7fffb8059db0) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:209
        alias = 0x7fffb8059df0
        _container_ = 
          {c = {<QListSpecialMethods<Python::AliasAst*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffb8034c60}, d = 0x7fffb8034c60}}, i = {i = 0x7fffb8034c70}, e = {i = 0x7fffb8034c78}, control = 1}
        aliasIndex = 0
#10 0x00007fffc68dbddc in Python::AstVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8059db0) at /home/flh/projects/kdev-python/parser/astvisitor.cpp:57
#11 0x00007fffc68e0c55 in Python::RangeFixVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8059db0) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:104
#12 0x00007fffc68d5f3b in Python::AstDefaultVisitor::visitCode(Python::CodeAst*) (this=0x7fffc4c41670, node=0x7fffb8051510) at /home/flh/projects/kdev-python/parser/astdefaultvisitor.cpp:94
        statement = 0x7fffb8059db0
        _container_ =
          {c = {<QListSpecialMethods<Python::Ast*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffb804ee70}, d = 0x7fffb804ee70}}, i = {i = 0x7fffb804ee80}, e = {i = 0x7fffb804eea8}, control = 1}
#13 0x00007fffc68dbba4 in Python::AstVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8051510) at /home/flh/projects/kdev-python/parser/astvisitor.cpp:41
#14 0x00007fffc68e0c55 in Python::RangeFixVisitor::visitNode(Python::Ast*) (this=0x7fffc4c41670, node=0x7fffb8051510) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:104
#15 0x00007fffc68df46b in Python::AstBuilder::parse(QUrl const&, QString&) (this=0x7fffc4c41d90, filename=..., contents=...) at /home/flh/projects/kdev-python/parser/astbuilder.cpp:757
        __PRETTY_FUNCTION__ = "Python::CodeAst::Ptr Python::AstBuilder::parse(const QUrl&, QString&)"
        hacked = {first = {static null = {<No data fields>}, d = 0x7fffb800f4c0}, second = 0}
        lineOffset = 0
        pyIniter = {<QMutexLocker> = {val = 140736526817705}, arena = 0x7fffcc1bb090}
        arena = 0x7fffcc1bb090
        flags = {cf_flags = 2304}
        exception = 0x0
        value = 0x0
        backtrace = 0x0
        cythonSyntaxRemover =
            {m_code = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff019ce40 <QListData::shared_null>}, d = 0x7ffff019ce40 <QListData::shared_null>}}, <No data fields>}, m_strippedCode = {static null = {<No data fields>}, d = 0x7ffff019b480 <QArrayData::shared_null>}, m_offset = {m_line = 0, m_column = 0}, m_deletions = {d = 0x7ffff019b480 <QArrayData::shared_null>}}
        syntaxtree = 0x7fffb80ecdc8
        t = {ast = 0x7fffb8051510, nodeStack = {<QVector<Python::Ast*>> = {d = 0x7fffb816c320}, <No data fields>}, m_lineOffset = 0}
        fixVisitor =
              {<Python::AstDefaultVisitor> = {<Python::AstVisitor> = {_vptr.AstVisitor = 0x7fffc6b00490 <vtable for Python::RangeFixVisitor+16>}, <No data fields>}, lines = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffb805f520}, d = 0x7fffb805f520}}, <No data fields>}, dots = {d = 0x7ffff019b480 <QArrayData::shared_null>}, attributeStart = {m_line = 0, m_column = 0}, static findString = {d = {d = 0xbc50b0}}, static findNumber = {d = {d = 0xbc5170}}}
#16 0x00007fffc68d3909 in Python::ParseSession::parse() (this=0x7fffb8003900) at /home/flh/projects/kdev-python/parser/parsesession.cpp:76
        pythonparser =
                    {m_problems = {<QListSpecialMethods<QExplicitlySharedDataPointer<KDevelop::Problem> >> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff019ce40 <QListData::shared_null>}, d = 0x7ffff019ce40 <QListDat---Type <return> to continue, or q <return> to quit---
a::shared_null>}}, static pyInitLock = {<QBasicMutex> = {d_ptr = {_q_value = {_M_b = {_M_p = 0x3}}}}, <No data fields>}}
        matched = {first = {value = 0x0, d = 0x0}, second = false}
        __PRETTY_FUNCTION__ = "QPair<QSharedPointer<Python::CodeAst>, bool> Python::ParseSession::parse()"
#17 0x00007fffc6d6dc24 in Python::ParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0xb72e20) at /home/flh/projects/kdev-python/pythonparsejob.cpp:157
        __PRETTY_FUNCTION__ = "virtual void Python::ParseJob::run(ThreadWeaver::JobPointer, ThreadWeaver::Thread*)"
        parselock = {q_val = 12349121}
        urlLock = {m_url = {m_index = 66384}}
        toUpdate = {m_topContext = 0x0}
        parserResults = {first = {value = 0x0, d = 0x0}, second = false}
        editor = {value = 0x7fffb8003240, d = 0x7ffff011cce3 <QObject::event(QEvent*)+499>}
        lock = {m_lock = 0x10, m_locked = false, m_timeout = 1519604770}
#18 0x00007ffff60ee5d6 in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#19 0x00007ffff60eebd8 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#20 0x00007ffff60edaea in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#21 0x00007ffff60ed190 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5
#22 0x00007fffeff156d8 in  () at /usr/lib/libQt5Core.so.5
#23 0x00007fffe72ba2e7 in start_thread () at /usr/lib/libpthread.so.0
#24 0x00007fffef2fe54f in clone () at /usr/lib/libc.so.6
Comment 6 Sven Brauch 2017-05-01 21:44:55 UTC
Git commit 6043407c4ee2e1b3eefac8e1f8c96a651b92a14e by Sven Brauch.
Committed on 01/05/2017 at 21:44.
Pushed by brauch into branch '5.1'.

fix crash

This loop is obviously wrong, it iterates over size()+1 indices 0..size(),
but there are only size().

M  +1    -1    parser/astbuilder.cpp

https://commits.kde.org/kdev-python/6043407c4ee2e1b3eefac8e1f8c96a651b92a14e
Comment 7 Francis Herne 2017-05-01 22:10:38 UTC
Not fixed, it crashes in visitAlias instead.
Comment 8 Francis Herne 2017-05-01 22:11:05 UTC
Sorry, fixAlias
Comment 9 Francis Herne 2017-05-01 22:51:07 UTC
In this case, it's related to the use of Windows line endings in the file.

When the file is parsed in the background (but not while opened in the editor), we fail to normalise them properly and the `lines` QStringList is given a single line containing the whole document. fixAlias() doesn't check that AST node positions exist in the document before trying to access them, and this fails when the line doesn't exist.
Comment 10 Francis Herne 2017-05-03 13:08:36 UTC
Correction, it's related to the use of MacOS Classic (why?!) line endings - i.e. just a carriage return but no newline.

Many places in kdev-python assume that lines can be split with \n, so we should probably normalise these earlier.

Alternative patch that solves this particular case:


diff --git a/parser/astbuilder.cpp b/parser/astbuilder.cpp
index 0e19f367..15df40a9 100644
--- a/parser/astbuilder.cpp
+++ b/parser/astbuilder.cpp
@@ -98,7 +98,8 @@ private:
 class RangeFixVisitor : public AstDefaultVisitor {
 public:
     RangeFixVisitor(const QString& contents)
-        : lines(contents.split('\n')) { };
+        // Split on all three variants - \r, \n or \r\n
+        : lines(contents.split(QRegExp("\\r\\n?|\\n"))) { };

     void visitNode(Ast* node) override {
         AstDefaultVisitor::visitNode(node);
Comment 11 Sven Brauch 2017-07-24 10:14:13 UTC
I don't recall -- did we ever fix this issue? I know we had a discussion and a RR ...
Comment 12 Francis Herne 2017-07-25 08:06:23 UTC
No, see https://phabricator.kde.org/D5707

People wanted (reasonable) changes to my patch, but I was a bit burned-out and never made them.
Something like mwolff's suggestion should be ok, I'll try it out and write some tests.
Comment 13 Francis Herne 2017-07-26 19:16:55 UTC
Git commit 396dda6a43402cadefbcffa4473d62d34de14175 by Francis Herne.
Committed on 26/07/2017 at 19:09.
Pushed by flherne into branch '5.1'.

Normalize line endings when creating ParseJob from background file.

When the file being parsed is open in the editor, `ParseJob::readContents()`
 uses `KTextEditor::Document::text()` to read the contents.
At some point within KTextEditor, the line endings are normalized - even if
 the document uses \r or \r\n, the returned content is separated by \n only.

Otherwise, the contents are read directly from the file. Until this patch,
 the line endings aren't normalized in this case; the ParseJob contents
 differ depending on whether the file is open in the editor.

Several places in kdev-python (and, at a glance, other language plugins)
 assume that lines can be separated by, and end with, \n. Old-style Macintosh
 endings (\r) break this assumption, in the worst case causing a crash.

Using a regex in each instance would be a pain, and one code path normalizes
 line endings already, so I think the best option is to do so for background
 files also.

Differential Revision: https://phabricator.kde.org/D5707

M  +4    -0    language/backgroundparser/parsejob.cpp
M  +15   -0    util/kdevstringhandler.cpp
M  +5    -0    util/kdevstringhandler.h
M  +29   -1    util/tests/test_stringhandler.cpp
M  +3    -0    util/tests/test_stringhandler.h

https://commits.kde.org/kdevplatform/396dda6a43402cadefbcffa4473d62d34de14175