Roslyn: "csc.exe" exited with code -2146232797

Created on 17 Sep 2019  路  15Comments  路  Source: dotnet/roslyn

Version Used:
16.3.0 Preview 1
16.3.0 Preview 2
16.3.0 Preview 3
16.3.0 Preview 4

Steps to Reproduce:

I can't tell, the only thing I see in VS is a one-line error message in build output:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\Roslyn\Microsoft.CSharp.Core.targets(59,5): error MSB6006: "csc.exe" exited with code -2146232797.

At least I found this in the event log which should be related:

Application: csc.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.IsCapturedInLocalFunction(Int32 slot)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.GetCapturedBitmask(BitVector& state)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.RecordCapturedChanges(BitVector& oldState, BitVector& newState)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.RecordChangedVars(LocalState& oldWrites, LocalState& newWrites, BitVector& oldReads, BitVector& newReads)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitLocalFunctionStatement(BoundLocalFunctionStatement localFunc)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitStatementsWithLocalFunctions(BoundBlock block)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitBlock(BoundBlock node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitForEachStatement(BoundForEachStatement node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitStatementsWithLocalFunctions(BoundBlock block)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitBlock(BoundBlock node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitStatementsWithLocalFunctions(BoundBlock block)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitBlock(BoundBlock node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Scan(Boolean& badRegion)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.Scan(Boolean& badRegion)
   at Microsoft.CodeAnalysis.CSharp.UnassignedFieldsWalker.Scan(Boolean& badRegion)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Analyze(Boolean& badRegion, Optional`1 initialState)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.Analyze(Boolean& badRegion, DiagnosticBag diagnostics)
   at Microsoft.CodeAnalysis.CSharp.UnassignedFieldsWalker.Analyze(CSharpCompilation compilation, MethodSymbol method, BoundNode node, DiagnosticBag diagnostics)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass22_0.<CompileNamedTypeAsTask>b__0()
Stack:
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.CodeAnalysis.FatalError.ReportUnlessCanceled(System.Exception)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.<CompileNamedTypeAsTask>b__0()
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.IsCapturedInLocalFunction(Int32)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.GetCapturedBitmask(Microsoft.CodeAnalysis.BitVector ByRef)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.RecordCapturedChanges(Microsoft.CodeAnalysis.BitVector ByRef, Microsoft.CodeAnalysis.BitVector ByRef)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.RecordChangedVars(LocalState ByRef, LocalState ByRef, Microsoft.CodeAnalysis.BitVector ByRef, Microsoft.CodeAnalysis.BitVector ByRef)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.BoundLocalFunctionStatement)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitStatementsWithLocalFunctions(Microsoft.CodeAnalysis.CSharp.BoundBlock)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitForEachStatement(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitStatementsWithLocalFunctions(Microsoft.CodeAnalysis.CSharp.BoundBlock)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitStatementsWithLocalFunctions(Microsoft.CodeAnalysis.CSharp.BoundBlock)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].VisitAlways(Microsoft.CodeAnalysis.CSharp.BoundNode)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].Scan(Boolean ByRef)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.Scan(Boolean ByRef)
   at Microsoft.CodeAnalysis.CSharp.UnassignedFieldsWalker.Scan(Boolean ByRef)
   at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1[[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState, Microsoft.CodeAnalysis.CSharp, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].Analyze(Boolean ByRef, Microsoft.CodeAnalysis.Optional`1<LocalState>)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.Analyze(Boolean ByRef, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.UnassignedFieldsWalker.Analyze(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, ProcessedFieldInitializers ByRef, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol)
   at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.<CompileNamedTypeAsTask>b__0()
   at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.<WithCurrentUICulture>b__0()
   at System.Threading.Tasks.Task.Execute()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

It's a huge WPF project being part of a huge solution (>130 projects) so I can't give any code. Please give a hint how to narrow this down (or get the jit debugger attached to the failing csc process).

(BTW: There is no problem with the release version of VS2019 16.2.x)

Area-Compilers Bug New Language Feature - Local Functions

All 15 comments

Update: After having applied Troubleshoot Just-In-Time debugging to both the WOW6432Node and the "normal" node (on 64-bit system) I was asked to attach a new VS instance to the crashing csc.exe, and on the call stack I both found a file name of my code and a BoundBlock containing some lines of code in this file.
When I now open this file in VS2019-preview then devenv.exe crashes immediately (asks for a debugger and disappears immediately if I don't attach one).

The problem code looks as following and is placed inside a constructor:

#if DEBUG
foreach ( var value in EnumExtensions.GetAllValues<DispatcherPriority>() )
{
    if ( value == DispatcherPriority.Invalid )
        continue;

    var priority = value;
    void PriorityTest()
    {
        Console.WriteLine("dequeued DispTest-MW {0} {1}", priority, (int)priority);
    }

    _ = this.Dispatcher.InvokeAsync(PriorityTest, priority);
    Console.WriteLine("enqueued DispTest-MW {0} {1}", priority, (int)priority);
}
#endif

The problem goes away when removing the single WriteLine line inside the local function PriorityTest(). Rewriting the code to use an anonymous lambda method for Dispatcher.InvokeAsync() also works.

Tagging @agocke
I was not able to repro by copying the above block of code into a small project and playing around with it in 16.4p2.
The faulty method (IsCapturedInLocalFunction) is small and straightforward, but I was not able to spot the issue from looking at it. Maybe you'll have an idea?

@springy76 I was not able to repro this issue so far.
A possible next step would be for you to capture a crash dump (instructions) and share that with me (an online drive like dropbox would work, my email is [email protected]).
If your project is public, I could also try to check it out and repro that way.

@jcouv (problem still unchanged in 16.3. release) I tried the crash dump instructions, but there just no dump file appears in c:\localdumps. The just-in-time debugger now appears twice per build: Once for VBCScompiler.exe and once for csc.exe. If I ignore both the build just succeeds without errors!?! If I open the problem source file in VS then the just-in-time debugger asks to debug devenv.exe - but no dump file for each of these 3 crashes.

In the event log I just noticed that the callstack for devenv.exe contains one method extra on top (RootSlot):

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.RootSlot(Int32 slot)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.IsCapturedInLocalFunction(Int32 slot)
   at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.GetCapturedBitmask(BitVector& state)

@jcouv I have the same problem with my solution (vs 16.3). I will try to upload a dump file and email a link to you.

I have sent a dump file to Julien.

Not sure if this is relevant but csc --version gives me Visual C# Compiler version 3.3.1-beta3-19461-02 (2fd12c21). That is kinda odd because I'm not on a preview.

[[GCFrame]]
--
[[HelperMethodFrame_2OBJ] (System.Environment.FailFast)] System.Environment.FailFast(System.String, System.Exception)
Microsoft_CodeAnalysis_ni!Microsoft.CodeAnalysis.FatalError.ReportUnlessCanceled(System.Exception)+5d1a44
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.b__0()+59
[[HelperMethodFrame_1OBJ]]
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.ConvertConcatExprToString(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BoundExpression)+1c1
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.RewriteStringConcatenation(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BinaryOperatorKind, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol)+45
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.MakeBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator, Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BinaryOperatorKind, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Boolean, Boolean, Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator)+58f
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator, Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator)+195
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.VisitExpressionWithoutStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)+27
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32 ByRef, Microsoft.CodeAnalysis.CSharp.BoundExpression)+33
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitExpressionImpl(Microsoft.CodeAnalysis.CSharp.BoundExpression)+49
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[[System.__Canon, mscorlib]](System.Collections.Immutable.ImmutableArray`1)+41
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression)+50
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.VisitExpressionWithoutStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)+27
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)+22
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32 ByRef, Microsoft.CodeAnalysis.CSharp.BoundExpression)+59
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitExpressionImpl(Microsoft.CodeAnalysis.CSharp.BoundExpression)+49
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitThrowStatement(Microsoft.CodeAnalysis.CSharp.BoundThrowStatement)+16
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitThrowStatement(Microsoft.CodeAnalysis.CSharp.BoundThrowStatement)+18
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitPossibleUsingDeclaration(Microsoft.CodeAnalysis.CSharp.BoundStatement, System.Collections.Immutable.ImmutableArray`1, Int32, Boolean ByRef)+43
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, System.Collections.Immutable.ImmutableArray`1, Int32)+58
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)+50
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.LocalRewriter.Rewrite(Microsoft.CodeAnalysis.CSharp.CSharpCompilation, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Boolean, Boolean, System.Collections.Immutable.ImmutableArray`1 ByRef, Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider, Microsoft.CodeAnalysis.DiagnosticBag, Boolean ByRef, Boolean ByRef, Boolean ByRef)+291
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.MethodCompiler.LowerBodyOrInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Boolean, Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider, System.Collections.Immutable.ImmutableArray`1 ByRef, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator ByRef, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol ByRef)+e7
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, ProcessedFieldInitializers ByRef, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState)+66f
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol)+440
Microsoft_CodeAnalysis_CSharp_ni!Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.b__0()+23
Microsoft_CodeAnalysis_ni!Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.b__0()+3d
mscorlib_ni!System.Threading.Tasks.Task.Execute()+46
mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+163
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+14
mscorlib_ni!System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)+215
mscorlib_ni!System.Threading.Tasks.Task.ExecuteEntry(Boolean)+73
mscorlib_ni!System.Threading.ThreadPoolWorkQueue.Dispatch()+152
[[DebuggerU2MCatchHandlerFrame]]

My solution contains two nuget packages with the built-in analyzers (AWSSDK.Core and AWSSDK.S3). After adding ExcludeAssets="analyzers" attribute to them I have one part of my solution compiling.

@Vertygo looking at the callstacks you have a completely different kind of problem. Effectively exit code -2146232797 just means "failfast has been called".

@springy76 you are probably right. I didn't know that it's actually failfast that returns this exit code. But by examining your callstack it looks like it falls into the same category - csc dies after trying to perform CodeAnalysis. I will move my issue to another ticket if @jcouv doesn't see connection.

(I don't know if it really is failfast or just "process died" - but the exit code number already has been used a lot for very different problems: https://github.com/dotnet/roslyn/issues?utf8=%E2%9C%93&q=2146232797 )

@springy76 Here's an alternative: When offered to debug the crash, select the option to debug, then use the "Debug" > "Save Dump As" menu to save a dump file.

@Vertygo's crash is indeed different (different stack trace), so I filed a separate issue for it: https://github.com/dotnet/roslyn/issues/38858

@jcouv I just mailed you a download link for a csc.exe crashdump.

@jcouv I just de-duped a feedback issue to this bug and there's another dump just in case you need it. (jcouv update: Andy meant to link to issue https://github.com/dotnet/roslyn/issues/38858 instead, the crash on string concat)

@agocke has an idea what the bug may be. Was probably introduced by allowing constants to be referenced by static local functions.

Thanks for reporting @springy76
The fix was merged into 16.4 preview 3

Was this page helpful?
0 / 5 - 0 ratings