VisualD: VisualDComServer.exe crashes frequently inside D_Parser.dll to stackoverflow.

Random D-user via Digitalmars-d-ide digitalmars-d-ide at puremagic.com
Wed May 6 07:36:51 PDT 2015


I've been playing more with this and it seems that now my 
msvc2013 shell also crashes from time to time. But I think it 
only crashes after VisualDComServer.exe has crashed first.

So, it looks like the issue might be editor/visuald trying to 
build a "data tip" on mouse hover.
That would match your tool tip guess. And I guess this could also 
explain why it's so random, since the mouse cursor probably just 
randomly hovers on top of some code while I type.

Perhaps I just need to bite the bullet and try to build 
visualDComParser myself so that I can debug what's wrong with it. 
(no promises though :))

Anyway, the msvc2013 crash exception is:

-$exception	{System.AccessViolationException: Attempted to read 
or write protected memory. This is often an indication that other 
memory is corrupt.
at 
Microsoft.VisualStudio.TextManager.Interop.IVsTextViewFilter.GetDataTipText(TextSpan[] 
pSpan, String& pbstrText)
at 
Microsoft.VisualStudio.Editor.Implementation.ShimQuickInfoSource.TryGetQuickInfoFromFilter(IQuickInfoSession 
session, TextSpan[] dataBufferTextSpan, String& tipText)
at 
Microsoft.VisualStudio.Editor.Implementation.ShimQuickInfoSource.AugmentQuickInfoSession(IQuickInfoSession 
session, IList`1 qiContent, ITrackingSpan& applicableToSpan)
at 
Microsoft.VisualStudio.Language.Intellisense.Implementation.QuickInfoSession.Recalculate()
at 
Microsoft.VisualStudio.Language.Intellisense.Implementation.QuickInfoSession.Start()
at 
Microsoft.VisualStudio.Language.Intellisense.Implementation.DefaultQuickInfoController.OnTextView_MouseHover(Object 
sender, MouseHoverEventArgs e)
at 
Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.RaiseHoverEvents()
at 
Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.OnHoverTimer(Object 
sender, EventArgs e)
at System.Windows.Threading.DispatcherTimer.FireTick(Object 
unused)
...

On Sunday, 3 May 2015 at 14:26:22 UTC, Random D-user wrote:
> Thans for reply.
>
> Unfortunately I don't have a clue what it's parsing when it 
> crashes. It pretty much just randomly crashes (suddenly pops 
> crash dialog (typically after 10 to 30 min)) as I'm typing 
> code. I really haven't seen any crashes directly after 
> attempting to use autocomplete, goto definition etc.
>
> My codebase size is 15K+ loc, so isolating the crash is not 
> trivial.
>
> Is there any kind of log, debug message etc. for the visuald 
> parser?
> It would really help if I knew what type it was parsing when it 
> crashed.
>
> On Sunday, 3 May 2015 at 13:55:05 UTC, Rainer Schuetze wrote:
>>
>> Seems like it is recursing endlessly while generating a string 
>> representation of some code, maybe a tool tip.
>>
>> Can you reduce the relevant code that triggers this and post 
>> it here?
>>
>> Rainer
>>
>> On 01.05.2015 09:26, Random D-user wrote:
>>> I've been toying around with my hobby project lately and 
>>> VisualD parser
>>> often (randomly) crashes in the background (and popping 
>>> crashed program
>>> dialog of course). So I decided to post this quick bug report 
>>> on the off
>>> chance it helps to fix it.
>>>
>>> My project compiles with latest DMD 2.067.1 without errors or 
>>> warnings,
>>> but it uses quite a bit of legacy d1.0 idioms, since I just 
>>> ported to
>>> 2.0 recently.
>>>
>>> For Visual D I've been using v0.3.41 beta 1 and 2. MSVC2013 
>>> shell.
>>>
>>> Launching visual studio debugger on crash gives:
>>>
>>> An unhandled exception of type 
>>> 'System.StackOverflowException' occurred
>>> in D_Parser.dll
>>>
>>>>   
>>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.GenerateCode(D_Parser.Resolver.AbstractType
>>>> t, bool pretty)
>>>     D_Parser.dll!D_Parser.Resolver.AbstractType.ToString()
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.VisitDelegateCallSymbol(D_Parser.Resolver.DelegateCallSymbol 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DelegateCallSymbol.Accept(D_Parser.Resolver.IResolvedTypeVisitor 
>>> vis)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.AcceptType(D_Parser.Resolver.AbstractType 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.GenerateCode(D_Parser.Resolver.AbstractType 
>>> t, bool pretty)
>>>     D_Parser.dll!D_Parser.Resolver.AbstractType.ToString()
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.VisitDelegateCallSymbol(D_Parser.Resolver.DelegateCallSymbol 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DelegateCallSymbol.Accept(D_Parser.Resolver.IResolvedTypeVisitor 
>>> vis)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.AcceptType(D_Parser.Resolver.AbstractType 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.GenerateCode(D_Parser.Resolver.AbstractType 
>>> t, bool pretty)
>>>     D_Parser.dll!D_Parser.Resolver.AbstractType.ToString()
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.VisitDelegateCallSymbol(D_Parser.Resolver.DelegateCallSymbol 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DelegateCallSymbol.Accept(D_Parser.Resolver.IResolvedTypeVisitor 
>>> vis)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.AcceptType(D_Parser.Resolver.AbstractType 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.GenerateCode(D_Parser.Resolver.AbstractType 
>>> t, bool pretty)
>>>     D_Parser.dll!D_Parser.Resolver.AbstractType.ToString()
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.VisitDelegateCallSymbol(D_Parser.Resolver.DelegateCallSymbol 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DelegateCallSymbol.Accept(D_Parser.Resolver.IResolvedTypeVisitor 
>>> vis)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.AcceptType(D_Parser.Resolver.AbstractType 
>>> t)
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.GenerateCode(D_Parser.Resolver.AbstractType 
>>> t, bool pretty)
>>>     D_Parser.dll!D_Parser.Resolver.AbstractType.ToString()
>>>
>>>    
>>> D_Parser.dll!D_Parser.Resolver.DTypeToCodeVisitor.VisitDelegateCallSymbol(D_Parser.Resolver.DelegateCallSymbol 
>>> t)
>>>
>>> ...



More information about the Digitalmars-d-ide mailing list