Bug 400294 - SigSegFault in background parser [crash in Php::ExpressionVisitor::visitStaticMember(Php::StaticMemberAst*)]
Summary: SigSegFault in background parser [crash in Php::ExpressionVisitor::visitStati...
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: PHP (other bugs)
Version First Reported In: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Heinz Wiesinger
URL:
Keywords:
: 401217 (view as bug list)
Depends on:
Blocks:
 
Reported: 2018-10-25 14:25 UTC by Alexander Opitz
Modified: 2018-12-05 21:21 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 5.3.1
Sentry Crash Report:


Attachments
Example file for crash background parser (775 bytes, application/x-php)
2018-10-25 14:25 UTC, Alexander Opitz
Details
backtrace of crash inside kdevelop (35.68 KB, text/plain)
2018-10-25 14:26 UTC, Alexander Opitz
Details
New crash information added by DrKonqi (28.13 KB, text/plain)
2018-11-02 16:06 UTC, João Ferreira
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Opitz 2018-10-25 14:25:23 UTC
Created attachment 115890 [details]
Example file for crash background parser

SUMMARY
KDevelop crashes while background parsing my files of the project (since updating from 5.2.4 to 5.2.80)

Thread 17 "Queue(0x5555563" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffa6286700 (LWP 9521)]
Php::ExpressionVisitor::visitStaticMember (this=0x7fffa62816b0, node=0x7fff8e16ce80) at /home/opitz/kde/src/extragear/kdevelop/plugins/kdev-php/parser/php.g:870
870       | variableIdentifier

Compiled from git-master with debugging information and with help from IRC channel I dragged this down to one line out of Symfony package.

> $ ./duchainify -r ~/projects/vendor/symfony/debug/DebugClassLoader.php
> Added 1 files to the background parser
> parsing with 2 threads
> Speicherzugriffsfehler (Speicherabzug geschrieben)

The line in question is: > self::${$annotation}[$name] = '';<
Comment 1 Alexander Opitz 2018-10-25 14:26:56 UTC
Created attachment 115891 [details]
backtrace of crash inside kdevelop
Comment 2 Francis Herne 2018-10-25 15:23:07 UTC
Reproducible with current 5.3-git. A file containing only '<?php' and the mentioned line causes an immediate crash when parsed.
Comment 3 Kevin Funk 2018-10-26 06:29:08 UTC
Pasting backtrace inline for better SEO:

==22767==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000020 (pc 0x7f0f3f26a0e0 bp 0x7f0f3e5b76e0 sp 0x7f0f3e5b7500 T6)
==22767==The signal is caused by a READ memory access.
==22767==Hint: address points to the zero page.
    #0 0x7f0f3f26a0df in Php::ExpressionVisitor::visitStaticMember(Php::StaticMemberAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:700:9
    #1 0x7f0f3f0d2f66 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:334:13
    #2 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #3 0x7f0f3f0d549c in Php::DefaultVisitor::visitBaseVariable(Php::BaseVariableAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:91:5
    #4 0x7f0f3f0cfc48 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:43:13
    #5 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #6 0x7f0f3f0d56ac in Php::DefaultVisitor::visitBaseVariableWithFunctionCalls(Php::BaseVariableWithFunctionCallsAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:98:5
    #7 0x7f0f3f0cfccc in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:46:13
    #8 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #9 0x7f0f3f0e3014 in Php::DefaultVisitor::visitVariable(Php::VariableAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1238:5
    #10 0x7f0f3f25eccd in Php::ExpressionVisitor::visitVariable(Php::VariableAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:189:25
    #11 0x7f0f3f0d396b in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:391:13
    #12 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #13 0x7f0f3f0e2a9d in Php::DefaultVisitor::visitVarExpressionNormal(Php::VarExpressionNormalAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1219:5
    #14 0x7f0f3f0d38e4 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:388:13
    #15 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #16 0x7f0f3f0e20fb in Php::DefaultVisitor::visitVarExpression(Php::VarExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1178:5
    #17 0x7f0f3f25ee8c in Php::ExpressionVisitor::visitVarExpression(Php::VarExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:195:21
    #18 0x7f0f3f0d374f in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:379:13
    #19 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #20 0x7f0f3f0e19a7 in Php::DefaultVisitor::visitUnaryExpressionNotPlusminus(Php::UnaryExpressionNotPlusminusAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1152:5
    #21 0x7f0f3f0d3641 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:373:13
    #22 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #23 0x7f0f3f0e1776 in Php::DefaultVisitor::visitUnaryExpression(Php::UnaryExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1137:5
    #24 0x7f0f3f26cfb8 in Php::ExpressionVisitor::visitUnaryExpression(Php::UnaryExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:810:21
    #25 0x7f0f3f0d35ba in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:370:13
    #26 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #27 0x7f0f3f0db8e4 in Php::DefaultVisitor::visitMultiplicativeExpression(Php::MultiplicativeExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:655:5
    #28 0x7f0f3f0d1dff in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:235:13
    #29 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #30 0x7f0f3f0d4644 in Php::DefaultVisitor::visitAdditiveExpression(Php::AdditiveExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:11:5
    #31 0x7f0f3f0cf7d4 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:16:13
    #32 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #33 0x7f0f3f0dd554 in Php::DefaultVisitor::visitShiftExpression(Php::ShiftExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:862:5
    #34 0x7f0f3f0d2cc3 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:319:13
    #35 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #36 0x7f0f3f0dcea4 in Php::DefaultVisitor::visitRelationalExpression(Php::RelationalExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:817:5
    #37 0x7f0f3f26db8c in Php::ExpressionVisitor::visitRelationalExpression(Php::RelationalExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:858:21
    #38 0x7f0f3f0d2804 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:292:13
    #39 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #40 0x7f0f3f0d96a1 in Php::DefaultVisitor::visitEqualityExpression(Php::EqualityExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:455:5
    #41 0x7f0f3f0d1157 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:163:13
    #42 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #43 0x7f0f3f0d57e6 in Php::DefaultVisitor::visitBitAndExpression(Php::BitAndExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:108:13
    #44 0x7f0f3f0cfd50 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:49:13
    #45 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #46 0x7f0f3f0d5ac6 in Php::DefaultVisitor::visitBitXorExpression(Php::BitXorExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:136:13
    #47 0x7f0f3f0cfe5b in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:55:13
    #48 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #49 0x7f0f3f0d5956 in Php::DefaultVisitor::visitBitOrExpression(Php::BitOrExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:122:13
    #50 0x7f0f3f0cfdd4 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:52:13
    #51 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #52 0x7f0f3f0d5c36 in Php::DefaultVisitor::visitBooleanAndExpression(Php::BooleanAndExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:150:13
    #53 0x7f0f3f0cfee2 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:58:13
    #54 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #55 0x7f0f3f0d5da6 in Php::DefaultVisitor::visitBooleanOrExpression(Php::BooleanOrExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:164:13
    #56 0x7f0f3f0cff69 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:61:13
    #57 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #58 0x7f0f3f0dc376 in Php::DefaultVisitor::visitNullCoalesceExpression(Php::NullCoalesceExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:734:13
    #59 0x7f0f3f0d21b0 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:256:13
    #60 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #61 0x7f0f3f0d8434 in Php::DefaultVisitor::visitConditionalExpression(Php::ConditionalExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:357:5
    #62 0x7f0f3f0d09f5 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:121:13
    #63 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #64 0x7f0f3f25e098 in Php::ExpressionVisitor::visitAssignmentExpression(Php::AssignmentExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:145:5
    #65 0x7f0f3f0cf9b4 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:28:13
    #66 0x7f0f3f25ddea in Php::ExpressionVisitor::visitNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionvisitor.cpp:137:21
    #67 0x7f0f3f2719aa in Php::ExpressionParser::evaluateType(Php::AstNode*, Php::EditorIntegrator*, KDevelop::CursorInRevision const&) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionparser.cpp:94:7
    #68 0x7f0f3f271c6e in Php::ExpressionParser::evaluateType(Php::AstNode*, Php::EditorIntegrator*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/expressionparser.cpp:79:12
    #69 0x7f0f3f24b1bc in Php::TypeBuilder::getTypeForNode(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/typebuilder.cpp:261:49
    #70 0x7f0f3f24f144 in Php::TypeBuilder::visitAssignmentExpression(Php::AssignmentExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/typebuilder.cpp:450:26
    #71 0x7f0f3f1fb91c in Php::DeclarationBuilder::visitAssignmentExpression(Php::AssignmentExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:995:33
    #72 0x7f0f3f1fb9fe in non-virtual thunk to Php::DeclarationBuilder::visitAssignmentExpression(Php::AssignmentExpressionAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp
    #73 0x7f0f3f0cf9b4 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:28:13
    #74 0x7f0f3f0dcdda in Php::DefaultVisitor::visitPrintExpression(Php::PrintExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:812:5
    #75 0x7f0f3f0d277d in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:289:13
    #76 0x7f0f3f0db446 in Php::DefaultVisitor::visitLogicalAndExpression(Php::LogicalAndExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:613:13
    #77 0x7f0f3f0d1be3 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:223:13
    #78 0x7f0f3f0db726 in Php::DefaultVisitor::visitLogicalXorExpression(Php::LogicalXorExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:641:13
    #79 0x7f0f3f0d1cf1 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:229:13
    #80 0x7f0f3f0db5b6 in Php::DefaultVisitor::visitLogicalOrExpression(Php::LogicalOrExpressionAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:627:13
    #81 0x7f0f3f0d1c6a in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:226:13
    #82 0x7f0f3f0d98ba in Php::DefaultVisitor::visitExpr(Php::ExprAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:466:5
    #83 0x7f0f3f0d1265 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:169:13
    #84 0x7f0f3f0deda1 in Php::DefaultVisitor::visitStatement(Php::StatementAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:937:5
    #85 0x7f0f3f24fbf2 in Php::TypeBuilder::visitStatement(Php::StatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/typebuilder.cpp:471:22
    #86 0x7f0f3f2058c2 in Php::DeclarationBuilder::visitStatement(Php::StatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:1479:29
    #87 0x7f0f3f205fce in non-virtual thunk to Php::DeclarationBuilder::visitStatement(Php::StatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp
    #88 0x7f0f3f0d2e58 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:328:13
    #89 0x7f0f3f0e0864 in Php::DefaultVisitor::visitTopStatement(Php::TopStatementAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1076:5
    #90 0x7f0f3f0d3290 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:352:13
    #91 0x7f0f3f0dadd6 in Php::DefaultVisitor::visitInnerStatementList(Php::InnerStatementListAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:568:13
    #92 0x7f0f3f0d1940 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:208:13
    #93 0x7f0f3f0db81a in Php::DefaultVisitor::visitMethodBody(Php::MethodBodyAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:650:5
    #94 0x7f0f3f22f593 in Php::ContextBuilder::visitClassStatement(Php::ClassStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/contextbuilder.cpp:305:13
    #95 0x7f0f3f24c2c6 in Php::TypeBuilder::visitClassStatement(Php::ClassStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/typebuilder.cpp:316:26
    #96 0x7f0f3f1ee076 in Php::DeclarationBuilder::visitClassStatement(Php::ClassStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:393:33
    #97 0x7f0f3f1ee6ee in non-virtual thunk to Php::DeclarationBuilder::visitClassStatement(Php::ClassStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp
    #98 0x7f0f3f0d0644 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:100:13
    #99 0x7f0f3f0d63f6 in Php::DefaultVisitor::visitClassBody(Php::ClassBodyAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:205:13
    #100 0x7f0f3f0d0185 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:73:13
    #101 0x7f0f3f0d6936 in Php::DefaultVisitor::visitClassDeclarationStatement(Php::ClassDeclarationStatementAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:228:5
    #102 0x7f0f3f22df03 in Php::ContextBuilder::visitClassDeclarationStatement(Php::ClassDeclarationStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/contextbuilder.cpp:258:21
    #103 0x7f0f3f24b73f in Php::TypeBuilder::visitClassDeclarationStatement(Php::ClassDeclarationStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/typebuilder.cpp:280:22
    #104 0x7f0f3f1e79b6 in Php::DeclarationBuilder::visitClassDeclarationStatement(Php::ClassDeclarationStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:187:29
    #105 0x7f0f3f1e88be in non-virtual thunk to Php::DeclarationBuilder::visitClassDeclarationStatement(Php::ClassDeclarationStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp
    #106 0x7f0f3f0d031a in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:82:13
    #107 0x7f0f3f0e09ac in Php::DefaultVisitor::visitTopStatement(Php::TopStatementAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:1078:5
    #108 0x7f0f3f0d3290 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:352:13
    #109 0x7f0f3f0dc8cc in Php::DefaultVisitor::visitOuterTopStatement(Php::OuterTopStatementAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:777:5
    #110 0x7f0f3f1fb6a8 in Php::DeclarationBuilder::visitOuterTopStatement(Php::OuterTopStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:987:29
    #111 0x7f0f3f1fb73e in non-virtual thunk to Php::DeclarationBuilder::visitOuterTopStatement(Php::OuterTopStatementAst*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp
    #112 0x7f0f3f0d24da in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:274:13
    #113 0x7f0f3f0dd8b6 in Php::DefaultVisitor::visitStart(Php::StartAst*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpdefaultvisitor.cpp:887:13
    #114 0x7f0f3f0d2dd1 in Php::Visitor::visitNode(Php::AstNode*) /home/kfunk/devel/build/kf5/kdev-php-stable/parser/phpvisitor.cpp:325:13
    #115 0x7f0f3f22b7ba in Php::ContextBuilder::startVisiting(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/contextbuilder.cpp:134:5
    #116 0x7f0f3f1e7385 in Php::DeclarationBuilder::startVisiting(Php::AstNode*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:162:29
    #117 0x7f0f3f1d641f in KDevelop::AbstractContextBuilder<Php::AstNode, Php::IdentifierAst>::supportBuild(Php::AstNode*, KDevelop::DUContext*) /home/kfunk/devel/install/kf5-stable/include/kdevplatform/language/duchain/builders/abstractcontextbuilder.h:129:5
    #118 0x7f0f3f211709 in KDevelop::AbstractTypeBuilder<Php::AstNode, Php::IdentifierAst, Php::ContextBuilder>::supportBuild(Php::AstNode*, KDevelop::DUContext*) /home/kfunk/devel/install/kf5-stable/include/kdevplatform/language/duchain/builders/abstracttypebuilder.h:84:39
    #119 0x7f0f3f20a6e6 in Php::DeclarationBuilder::supportBuild(Php::AstNode*, KDevelop::DUContext*) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:1687:29
    #120 0x7f0f3f20b2da in KDevelop::AbstractContextBuilder<Php::AstNode, Php::IdentifierAst>::build(KDevelop::IndexedString const&, Php::AstNode*, KDevelop::ReferencedTopDUContext const&) /home/kfunk/devel/install/kf5-stable/include/kdevplatform/language/duchain/builders/abstractcontextbuilder.h:109:5
    #121 0x7f0f3f1e7274 in Php::DeclarationBuilder::build(KDevelop::IndexedString const&, Php::AstNode*, KDevelop::ReferencedTopDUContext const&) /home/kfunk/devel/src/kf5/kdev-php-stable/duchain/builders/declarationbuilder.cpp:155:32
    #122 0x7f0f3f45f739 in Php::ParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) /home/kfunk/devel/src/kf5/kdev-php-stable/phpparsejob.cpp:135:58
    #123 0x7f0f3f46117b in non-virtual thunk to Php::ParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) /home/kfunk/devel/src/kf5/kdev-php-stable/phpparsejob.cpp
    #124 0x7f0f679a7879 in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x17879)
    #125 0x7f0f679a7de7 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x17de7)
    #126 0x7f0f679a6bef in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x16bef)
    #127 0x7f0f679a674a in ThreadWeaver::Thread::run() (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x1674a)
    #128 0x7f0f65216c86  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xc2c86)
    #129 0x7f0f64e24163 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8163)
    #130 0x7f0f64d20dee in clone (/lib/x86_64-linux-gnu/libc.so.6+0x11adee)
Comment 4 João Ferreira 2018-11-02 16:06:31 UTC
Created attachment 116055 [details]
New crash information added by DrKonqi

kdevelop (5.3.0) using Qt 5.11.2

- What I was doing when the application crashed:

Just launched the application and browsed some open tabs; KDevelop will crash by itself after a few seconds. My PHP project is also using Symfony.

-- Backtrace (Reduced):
#6  0x00007f85c09a7a86 in Php::ExpressionVisitor::visitStaticMember(Php::StaticMemberAst*) () at /usr/lib/libkdevphpduchain.so
#7  0x00007f85c09244c4 in Php::DefaultVisitor::visitVariable(Php::VariableAst*) () at /usr/lib/libkdevphpparser.so
#8  0x00007f85c092442e in Php::DefaultVisitor::visitVarExpressionNormal(Php::VarExpressionNormalAst*) () at /usr/lib/libkdevphpparser.so
#9  0x00007f85c09242f7 in Php::DefaultVisitor::visitVarExpression(Php::VarExpressionAst*) () at /usr/lib/libkdevphpparser.so
#10 0x00007f85c09a66f6 in Php::ExpressionVisitor::visitVarExpression(Php::VarExpressionAst*) () at /usr/lib/libkdevphpduchain.so
Comment 5 Kevin Funk 2018-11-16 14:01:09 UTC
@Heinz: Care to have a look before the 5.3.1 release? Likely due next week.
Comment 6 Heinz Wiesinger 2018-11-17 16:42:23 UTC
Git commit 2469eba750b2b52107e0c2671c3c11a9d87539f8 by Heinz Wiesinger.
Committed on 17/11/2018 at 16:40.
Pushed by wiesinger into branch '5.3'.

Fix syntax support for dynamic member access.

Covers syntax like:
- A::${$foo}
- A::$var::${$foo}
- A::$var->${$foo}
FIXED-IN: 5.3.1

Reviewers: kfunk

Reviewed By: kfunk

Subscribers: kfunk, kdevelop-devel

Tags: #kdevelop

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

M  +48   -16   duchain/expressionvisitor.cpp
M  +112  -0    duchain/tests/uses.cpp
M  +3    -0    duchain/tests/uses.h

https://commits.kde.org/kdev-php/2469eba750b2b52107e0c2671c3c11a9d87539f8
Comment 7 Heinz Wiesinger 2018-11-20 20:51:58 UTC
*** Bug 401217 has been marked as a duplicate of this bug. ***
Comment 8 Gerald Senarclens de Grancy 2018-12-05 21:21:43 UTC
@Kevin: any idea when 5.3.1 (including this fix) will be released?