Crashing

PHP Tools [?] extends Visual Studio with set of advanced features to work more efficiently with PHP code.

Crashing

Postby beo6 » March 15th, 2018, 10:03 am

I have a lot of crashes that result in missing syntax highlighting in new opened files.

This is the message inside the ActivityLog.xml:

Code: Select all
  <entry>
    <record>2209</record>
    <time>2018/03/15 08:34:22.262</time>
    <type>Information</type>
    <source>PhpLanguage</source>
    <description>ProjectHierarchy.InitProjectContent Done.</description>
  </entry>
  <entry>
    <record>2210</record>
    <time>2018/03/15 08:35:46.748</time>
    <type>Error</type>
    <source>Editor or Editor Extension</source>
    <description>System.OutOfMemoryException: Eine Ausnahme vom Typ &quot;System.OutOfMemoryException&quot; wurde ausgel&#x00F6;st.&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.RoutineHelpers.CreateTypeRefContext(IRoutine routine)&#x000D;&#x000A;   bei &#x000E;&#x001C;&#x001C;&#x0008;&#x0007;&#x0001;&#x0003;&#x0019;&#x000F;&#x0016;&#x001C;&#x0002;&#x000C;&#x0015;&#x0011;&#x000E; &#x0005;&#x000C;&#x0012;&#x0011;&#x0002;&#x000F;&#x001C;.Devsense.PHP.Nodes.Tables.ITableFunction.GetReturnType(ITypeRefContext ctx)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.TablesAnalysisVisitor.HandleFunctionCall(ITableFunction info, QualifiedName fncName, Span fncNameSpan, TypeRefMask ofType, CallSignature callsignature)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.TablesAnalysisVisitor.&lt;&gt;c__DisplayClass48_0.&lt;HandleMethodCall&gt;b__1(ITableFunction info)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.TablesAnalysisVisitor.HandleMemberUseInternal[T](TypeRefMask ofType, Span ofTypeSpan, TypeRef ofTypeRef, Func`2 resolveMember, Func`2 evaluateMember, Action evaluateUnknownMember, Func`2 mergeMembers, Action checkMemberNotFound, Action`3 checkTypeRef)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.TablesAnalysisVisitor.HandleMethodCall(Name name, Span nameSpan, TypeRefMask ofType, Span ofTypeSpan, TypeRef ofTypeRef, CallSignature callsignature)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.TablesAnalysisVisitor.HandleFunctionCall(DirectFcnCall fcn)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitDirectFcnCall(DirectFcnCall x, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitDirectFcnCall(DirectFcnCall x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.DirectFcnCall.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCondition(Expression condition, ConditionBranch branch)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitConditionalEx(ConditionalEx x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.ConditionalEx.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.TreeVisitor.VisitElement(LangElement element)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitJumpStmt(JumpStmt x)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.Ast.JumpStmt.VisitMe(TreeVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.Syntax.TreeVisitor.VisitElement(LangElement element)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Graph.GraphVisitor.VisitCFGBlockStatements(Block x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Graph.GraphVisitor.VisitCFGBlockInternal(Block x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCFGBlock(Block x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Graph.Block.Visit(GraphVisitor visitor)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.VisitCFG(ControlFlowGraph x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.ExpressionAnalysisVisitor.VisitCFG(ControlFlowGraph x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.TablesAnalysisVisitor.VisitCFG(ControlFlowGraph x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.CheckAnalysisVisitor.VisitCFG(ControlFlowGraph x)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.Visitors.AnalysisVisitor.AnalyseGraph(ControlFlowGraph graph, LocalsState initialFlowState)&#x000D;&#x000A;   bei Devsense.PHP.ControlFlow.Analysis.State.AnalyseCfg(ControlFlowGraph cfg, LambdaFunctionExprHandler handleLambdaExpr, IRoutine routine, CallInfo call, LocalsState callState, ITables tables, ErrorAnalysisSettings errSettings)&#x000D;&#x000A;   bei &#x001D;&#x000A;&#x0011;&#x0015;&#x000C;&#x0018;&#x0003;&#x0019;&#x0018;&#x0016;&#x0016;&#x0014;&#x0018;&#x0002;&#x0005;&#x0019;&#x0016;&#x0010;&#x0009;&#x001C;&#x0001;&#x0010;&#x000B;&#x0014;&#x0007;.&#x001E;&#x0017;&#x0015;&#x0015;&#x001B;&#x0015;&#x001B;&#x001B;&#x0012;&#x0002;&#x0015;&#x0014;&#x0010;&#x0004;&#x0007; &#x0013;&#x0018;&#x0016;&#x001E;&#x0007;&#x0009;&#x0009;&#x0003;&#x0005;(IRoutine &#x0002;&#x0014;&#x0010;&#x0015;&#x0010;&#x0019;&#x0015;&#x001C;&#x000B;&#x0011;&#x0006;&#x001F;&#x000F;&#x0009;&#x0012;&#x0019;&#x0014;&#x0008;&#x001F;&#x0002;&#x0015;&#x0009;&#x0010;&#x0017;&#x0010;, CallInfo &#x0016;&#x0017;&#x000C;&#x0009;&#x0001;&#x0002;&#x0016;&#x0009;&#x001C;&#x0019;&#x0014;&#x0001;&#x0009;&#x0019;&#x000F;&#x0016;&#x0006;&#x001F;&#x001F;&#x0007;&#x0019;&#x0016;&#x0007;&#x0015;, LocalsState &#x0013;&#x0011;&#x001D;&#x0008;&#x000E;&#x0001;&#x0004;&#x0016;&#x0013;&#x0013;&#x000A;&#x0007;&#x000A;&#x0008;&#x0013;&#x000C;&#x001E;&#x000A;&#x0002;&#x0005;&#x0010;&#x0012;&#x0018;&#x0009;&#x0013;)&#x000D;&#x000A;   bei &#x001D;&#x000A;&#x0011;&#x0015;&#x000C;&#x0018;&#x0003;&#x0019;&#x0018;&#x0016;&#x0016;&#x0014;&#x0018;&#x0002;&#x0005;&#x0019;&#x0016;&#x0010;&#x0009;&#x001C;&#x0001;&#x0010;&#x000B;&#x0014;&#x0007;.EnsureRoutineAnalysed(IRoutine routine)&#x000D;&#x000A;   bei &#x001D;&#x000A;&#x0011;&#x0015;&#x000C;&#x0018;&#x0003;&#x0019;&#x0018;&#x0016;&#x0016;&#x0014;&#x0018;&#x0002;&#x0005;&#x0019;&#x0016;&#x0010;&#x0009;&#x001C;&#x0001;&#x0010;&#x000B;&#x0014;&#x0007;.&#x0008;&#x0015;&#x0010;&#x000B;&#x0012;&#x001A;&#x0004;&#x001B;&#x000B;&#x000A; &#x0019;&#x0018;&#x0011;&#x001F;&#x001B;&#x001A;&#x0001;&#x0007;&#x000D;&#x001A;&#x0004;&#x0013;&#x0011;&#x0003;(&#x0018;&#x000A;&#x000A;&#x0001;&#x000F;&#x0018;&#x0009;&#x001F;&#x001C;&#x0003;&#x001F;&#x0003;&#x0019;&#x000E;&#x001B;&#x001C;&#x0002;&#x001F;&#x001A;&#x000D;&#x0012;&#x000B;&#x0003;&#x001E;&#x0011; &#x000D;&#x001E;&#x000A;&#x0016;&#x0019;&#x0004;&#x0019;&#x000A;&#x0001;&#x001D;&#x000E;&#x0003;&#x0010;&#x001F;&#x000B;&#x0011;&#x000D;&#x0002;&#x000E;&#x0002; &#x0007;&#x001D;&#x0016;&#x0019;)&#x000D;&#x000A;   bei &#x001D;&#x000A;&#x0011;&#x0015;&#x000C;&#x0018;&#x0003;&#x0019;&#x0018;&#x0016;&#x0016;&#x0014;&#x0018;&#x0002;&#x0005;&#x0019;&#x0016;&#x0010;&#x0009;&#x001C;&#x0001;&#x0010;&#x000B;&#x0014;&#x0007;.AnalyseNode(&#x0018;&#x000A;&#x000A;&#x0001;&#x000F;&#x0018;&#x0009;&#x001F;&#x001C;&#x0003;&#x001F;&#x0003;&#x0019;&#x000E;&#x001B;&#x001C;&#x0002;&#x001F;&#x001A;&#x000D;&#x0012;&#x000B;&#x0003;&#x001E;&#x0011; node)&#x000D;&#x000A;   bei &#x0002;&#x0015;&#x001B;&#x0002;&#x000D;&#x000E;&#x0009;&#x0016; &#x0002;&#x0004;&#x0004;&#x0004;&#x0001;&#x000F;&#x0014;&#x000D;&#x0011;&#x0008;&#x0006;&#x000B;&#x0002;&#x001B;&#x0002;&#x0005;.InvokeTask()&#x000D;&#x000A;   bei PHP.VisualStudio.Language.TaskQueue.&#x0019;&#x0001;&#x0004;&#x0004;&#x0016;&#x0010;&#x0005;&#x0016;&#x001A;&#x0008;&#x000C;&#x0019;&#x001C;&#x0015;&#x0012;&#x000F;&#x0013;&#x000A;&#x0003;&#x0008;&#x000E;&#x0009;&#x0016;&#x0015;&#x0010;.&#x0008;&#x000B;&#x001D;&#x000D;&#x0011;&#x0007;&#x0010;&#x0010;&#x0009;&#x0002;&#x0019;&#x0018;&#x0006;&#x001B;&#x0008; &#x0012;&#x000D;&#x000C;&#x0006;&#x0007;&#x0006;&#x001D;&#x0002;&#x0006;()&#x000D;&#x000A;--- Ende der Stapel&#x00FC;berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel&#x00F6;st wurde ---&#x000D;&#x000A;   bei Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)</description>
  </entry>
beo6
 
Posts: 8
Joined: February 11th, 2018, 6:33 pm

Re: Crashing

Postby Miloslav Beno » March 15th, 2018, 2:27 pm

Hello,

Thanks for the post.

From the activity log VS run out of memory. That might be caused by really huge project. May I ask how big the project is?

Thanks,
Miloslav Beno │ DEVSENSE s.r.o. │ @miloslavbenomiloslav@devsense.com
User avatar
Miloslav Beno
 
Posts: 1153
Joined: January 7th, 2012, 8:36 pm

Re: Crashing

Postby beo6 » March 15th, 2018, 3:24 pm

Its the TYPO3 Core you can find here:
https://github.com/TYPO3/TYPO3.CMS

I already excluded the temporary files from the solution. But that does not help.
beo6
 
Posts: 8
Joined: February 11th, 2018, 6:33 pm

Re: Crashing

Postby Miloslav Beno » March 16th, 2018, 8:24 am

Thanks, let us test this one and we will get back asap.
Miloslav Beno │ DEVSENSE s.r.o. │ @miloslavbenomiloslav@devsense.com
User avatar
Miloslav Beno
 
Posts: 1153
Joined: January 7th, 2012, 8:36 pm

Re: Crashing

Postby beo6 » March 16th, 2018, 8:31 am

Also my PC has 64 GB Ram, so that should not be an issue.

It seems it sometimes does not give an error, but when i Press F12 on a method or something, it opens the file without any Syntax highlighting. If i quickly press F12, then close it with CTRL+F4 to close it, then Press F12 again etc. it eventually opens with Syntax highlighting and everything. :shock:
beo6
 
Posts: 8
Joined: February 11th, 2018, 6:33 pm

Re: Crashing

Postby Miloslav Beno » March 16th, 2018, 9:26 am

Hi,

It works quite well on my test machine. What version of PHP Tools do you have? Do you have some other vs extension that could take a lot of memory?

Thanks,
Miloslav Beno │ DEVSENSE s.r.o. │ @miloslavbenomiloslav@devsense.com
User avatar
Miloslav Beno
 
Posts: 1153
Joined: January 7th, 2012, 8:36 pm

Re: Crashing

Postby Miloslav Beno » March 16th, 2018, 12:20 pm

We've analyzed all the packages typo3 uses and we've been able to locate a potential issue. We will prepare an update for you.
Miloslav Beno │ DEVSENSE s.r.o. │ @miloslavbenomiloslav@devsense.com
User avatar
Miloslav Beno
 
Posts: 1153
Joined: January 7th, 2012, 8:36 pm

Re: Crashing

Postby beo6 » March 16th, 2018, 3:34 pm

Nice. :)

will have to check and disable all Extensions i have to see if any of these does make some issues.
beo6
 
Posts: 8
Joined: February 11th, 2018, 6:33 pm

Re: Crashing

Postby Miloslav Beno » March 22nd, 2018, 3:13 pm

Hello,

You can try the latest preview https://www.devsense.com/download. We've included some changes that will hopefully solve the issue you've been having.

Please let us know if that helped.

Thanks!
Miloslav Beno │ DEVSENSE s.r.o. │ @miloslavbenomiloslav@devsense.com
User avatar
Miloslav Beno
 
Posts: 1153
Joined: January 7th, 2012, 8:36 pm

Re: Crashing

Postby beo6 » March 28th, 2018, 9:26 am

Looks good so far. :)

Now only PHP 7.2 support is missing and its perfect. Really nice work. ;)
beo6
 
Posts: 8
Joined: February 11th, 2018, 6:33 pm

Next

Return to PHP Tools

Who is online

Users browsing this forum: No registered users and 3 guests

cron

User Control Panel

Login

Who is online

In total there are 3 users online :: 0 registered, 0 hidden and 3 guests (based on users active over the past 5 minutes)
Most users ever online was 62 on January 7th, 2012, 10:54 pm

Users browsing this forum: No registered users and 3 guests
Phalanger