未验证 提交 0183a75f 编写于 作者: D dotnet-automerge-bot 提交者: GitHub

Merge pull request #33338 from dotnet/merges/dev15.9.x-to-dev16.0-preview3

Merge dev15.9.x to dev16.0
...@@ -81,6 +81,7 @@ ...@@ -81,6 +81,7 @@
<MicrosoftNETCoreRuntimeCoreCLRVersion>2.0.0</MicrosoftNETCoreRuntimeCoreCLRVersion> <MicrosoftNETCoreRuntimeCoreCLRVersion>2.0.0</MicrosoftNETCoreRuntimeCoreCLRVersion>
<!-- Using a private build of Microsoft.Net.Test.SDK to work around issue https://github.com/Microsoft/vstest/issues/1764 --> <!-- Using a private build of Microsoft.Net.Test.SDK to work around issue https://github.com/Microsoft/vstest/issues/1764 -->
<MicrosoftNETTestSdkVersion>15.9.0-dev2</MicrosoftNETTestSdkVersion> <MicrosoftNETTestSdkVersion>15.9.0-dev2</MicrosoftNETTestSdkVersion>
<MicrosoftNetFX20Version>1.0.3</MicrosoftNetFX20Version>
<MicrosoftServiceHubClientVersion>1.3.23</MicrosoftServiceHubClientVersion> <MicrosoftServiceHubClientVersion>1.3.23</MicrosoftServiceHubClientVersion>
<MicrosoftTplDataflowVersion>4.5.24</MicrosoftTplDataflowVersion> <MicrosoftTplDataflowVersion>4.5.24</MicrosoftTplDataflowVersion>
<MicrosoftVisualBasicVersion>10.1.0</MicrosoftVisualBasicVersion> <MicrosoftVisualBasicVersion>10.1.0</MicrosoftVisualBasicVersion>
...@@ -93,6 +94,8 @@ ...@@ -93,6 +94,8 @@
<MicrosoftVisualStudioDebuggerEngineVersion>15.0.27309-vsucorediag</MicrosoftVisualStudioDebuggerEngineVersion> <MicrosoftVisualStudioDebuggerEngineVersion>15.0.27309-vsucorediag</MicrosoftVisualStudioDebuggerEngineVersion>
<MicrosoftVisualStudioDebuggerMetadataVersion>15.0.27309-vsucorediag</MicrosoftVisualStudioDebuggerMetadataVersion> <MicrosoftVisualStudioDebuggerMetadataVersion>15.0.27309-vsucorediag</MicrosoftVisualStudioDebuggerMetadataVersion>
<MicrosoftVisualStudioDebuggerUIInterfacesVersion>15.0.27309-vsucorediag</MicrosoftVisualStudioDebuggerUIInterfacesVersion> <MicrosoftVisualStudioDebuggerUIInterfacesVersion>15.0.27309-vsucorediag</MicrosoftVisualStudioDebuggerUIInterfacesVersion>
<MicrosoftVisualStudioDebuggerEngineimplementationVersion>15.7.2082401</MicrosoftVisualStudioDebuggerEngineimplementationVersion>
<MicrosoftVisualStudioDebuggerMetadataimplementationVersion>15.7.2082401</MicrosoftVisualStudioDebuggerMetadataimplementationVersion>
<MicrosoftVisualStudioDesignerInterfacesVersion>1.1.4322</MicrosoftVisualStudioDesignerInterfacesVersion> <MicrosoftVisualStudioDesignerInterfacesVersion>1.1.4322</MicrosoftVisualStudioDesignerInterfacesVersion>
<MicrosoftVisualStudioDiagnosticsPerformanceProviderVersion>15.8.27812-alpha</MicrosoftVisualStudioDiagnosticsPerformanceProviderVersion> <MicrosoftVisualStudioDiagnosticsPerformanceProviderVersion>15.8.27812-alpha</MicrosoftVisualStudioDiagnosticsPerformanceProviderVersion>
<MicrosoftVisualStudioSDKEmbedInteropTypesVersion>15.0.17</MicrosoftVisualStudioSDKEmbedInteropTypesVersion> <MicrosoftVisualStudioSDKEmbedInteropTypesVersion>15.0.17</MicrosoftVisualStudioSDKEmbedInteropTypesVersion>
...@@ -312,6 +315,7 @@ ...@@ -312,6 +315,7 @@
https://dotnet.myget.org/F/sourcelink/api/v3/index.json; https://dotnet.myget.org/F/sourcelink/api/v3/index.json;
https://myget.org/F/vs-devcore/api/v3/index.json; https://myget.org/F/vs-devcore/api/v3/index.json;
https://myget.org/F/vs-editor/api/v3/index.json; https://myget.org/F/vs-editor/api/v3/index.json;
https://myget.org/F/roslyn_concord/api/v3/index.json;
https://vside.myget.org/F/vssdk/api/v3/index.json; https://vside.myget.org/F/vssdk/api/v3/index.json;
https://vside.myget.org/F/vs-impl/api/v3/index.json; https://vside.myget.org/F/vs-impl/api/v3/index.json;
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json; https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<InternalsVisibleTo Include="Microsoft.VisualStudio.ProductionBreakpoints.CodeAnalysis" Key="$(VisualStudioDebuggerKey)" /> <InternalsVisibleTo Include="Microsoft.VisualStudio.ProductionBreakpoints.CodeAnalysis" Key="$(VisualStudioDebuggerKey)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
</ItemGroup> </ItemGroup>
<Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" /> <Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" />
</Project> </Project>
\ No newline at end of file
...@@ -30,8 +30,9 @@ ...@@ -30,8 +30,9 @@
<ProjectReference Include="..\..\..\..\Core\Source\ResultProvider\NetFX20\ResultProvider.NetFX20.csproj" /> <ProjectReference Include="..\..\..\..\Core\Source\ResultProvider\NetFX20\ResultProvider.NetFX20.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
<PackageReference Include="Microsoft.NetFX20" Version="$(MicrosoftNetFX20Version)" />
</ItemGroup> </ItemGroup>
<Import Project="..\CSharpResultProvider.projitems" Label="Shared" /> <Import Project="..\CSharpResultProvider.projitems" Label="Shared" />
<Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" /> <Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" />
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
<ProjectReference Include="..\..\..\..\Core\Source\ResultProvider\Portable\Microsoft.CodeAnalysis.ResultProvider.csproj" /> <ProjectReference Include="..\..\..\..\Core\Source\ResultProvider\Portable\Microsoft.CodeAnalysis.ResultProvider.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
</ItemGroup> </ItemGroup>
<Import Project="..\CSharpResultProvider.projitems" Label="Shared" /> <Import Project="..\CSharpResultProvider.projitems" Label="Shared" />
<Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" /> <Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" />
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<EmbeddedResource Include="Resources\WindowsProxy.winmd" /> <EmbeddedResource Include="Resources\WindowsProxy.winmd" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.DiaSymReader" Version="$(MicrosoftDiaSymReaderVersion)" /> <PackageReference Include="Microsoft.DiaSymReader" Version="$(MicrosoftDiaSymReaderVersion)" />
</ItemGroup> </ItemGroup>
</Project> </Project>
\ No newline at end of file
...@@ -43,9 +43,9 @@ ...@@ -43,9 +43,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" /> <PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" /> <PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata"> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation">
<Version>$(MicrosoftVisualStudioDebuggerMetadataVersion)</Version> <Version>$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)</Version>
<ExcludeAssets>compile</ExcludeAssets> <ExcludeAssets>compile</ExcludeAssets>
</PackageReference> </PackageReference>
</ItemGroup> </ItemGroup>
......
...@@ -80,8 +80,9 @@ ...@@ -80,8 +80,9 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
<PackageReference Include="Microsoft.NetFX20" Version="$(MicrosoftNetFX20Version)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider" /> <InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider" />
......
...@@ -80,8 +80,8 @@ ...@@ -80,8 +80,8 @@
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider" /> <InternalsVisibleTo Include="Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
</ItemGroup> </ItemGroup>
<Import Project="..\ResultProvider.projitems" Label="Shared" /> <Import Project="..\ResultProvider.projitems" Label="Shared" />
</Project> </Project>
\ No newline at end of file
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup Label="File References"> <ItemGroup Label="File References">
<Reference Include="System" /> <Reference Include="System" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
</ItemGroup> </ItemGroup>
<ItemGroup Label="Project References"> <ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\..\Test\Utilities\Portable\Roslyn.Test.Utilities.csproj" /> <ProjectReference Include="..\..\..\..\Test\Utilities\Portable\Roslyn.Test.Utilities.csproj" />
......
...@@ -25,6 +25,6 @@ ...@@ -25,6 +25,6 @@
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
</ItemGroup> </ItemGroup>
</Project> </Project>
\ No newline at end of file
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" /> <PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
</ItemGroup> </ItemGroup>
<ItemGroup Label="Linked Files"> <ItemGroup Label="Linked Files">
<Compile Include="..\..\..\..\Dependencies\PooledObjects\PooledStringBuilder.cs"> <Compile Include="..\..\..\..\Dependencies\PooledObjects\PooledStringBuilder.cs">
......
...@@ -37,9 +37,9 @@ ...@@ -37,9 +37,9 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata"> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation">
<Version>$(MicrosoftVisualStudioDebuggerMetadataVersion)</Version> <Version>$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)</Version>
<ExcludeAssets>compile</ExcludeAssets> <ExcludeAssets>compile</ExcludeAssets>
</PackageReference> </PackageReference>
</ItemGroup> </ItemGroup>
......
...@@ -32,8 +32,9 @@ ...@@ -32,8 +32,9 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
<PackageReference Include="Microsoft.NetFX20" Version="$(MicrosoftNetFX20Version)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="My Project\" /> <Folder Include="My Project\" />
......
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata" Version="$(MicrosoftVisualStudioDebuggerMetadataVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="$(MicrosoftVisualStudioDebuggerMetadataimplementationVersion)" />
</ItemGroup> </ItemGroup>
<Import Project="..\BasicResultProvider.projitems" Label="Shared" /> <Import Project="..\BasicResultProvider.projitems" Label="Shared" />
<Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" /> <Import Project="$(RepositoryEngineeringDir)targets\Vsdconfig.targets" />
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.DiaSymReader" Version="$(MicrosoftDiaSymReaderVersion)" /> <PackageReference Include="Microsoft.DiaSymReader" Version="$(MicrosoftDiaSymReaderVersion)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using System.Collections.Immutable; using System.Collections.Immutable;
...@@ -30,16 +30,15 @@ public Task<ImmutableArray<ActiveStatementDebugInfo>> GetActiveStatementsAsync(C ...@@ -30,16 +30,15 @@ public Task<ImmutableArray<ActiveStatementDebugInfo>> GetActiveStatementsAsync(C
// TODO: return empty outside of debug session. // TODO: return empty outside of debug session.
// https://github.com/dotnet/roslyn/issues/24325 // https://github.com/dotnet/roslyn/issues/24325
int unexpectedError = 0;
var completion = new TaskCompletionSource<ImmutableArray<ActiveStatementDebugInfo>>(); var completion = new TaskCompletionSource<ImmutableArray<ActiveStatementDebugInfo>>();
var builders = default(ArrayBuilder<ArrayBuilder<ActiveStatementDebugInfo>>); var builders = default(ArrayBuilder<ArrayBuilder<ActiveStatementDebugInfo>>);
int pendingRuntimes = 0; int pendingRuntimes = 0;
int runtimeCount = 0; int runtimeCount = 0;
var workList = DkmWorkList.Create(CompletionRoutine: _ => // No exception should be thrown in case of errors on the debugger side.
{ // The debugger is responsible to provide telemetry for error cases.
completion.TrySetException(new InvalidOperationException($"Unexpected error enumerating active statements: 0x{unexpectedError:X8}")); // The callback should not be called, but it's there to guarantee that the task completes and a hang is avoided.
}); var workList = DkmWorkList.Create(_ => { completion.TrySetResult(ImmutableArray<ActiveStatementDebugInfo>.Empty); });
void CancelWork() void CancelWork()
{ {
...@@ -48,11 +47,7 @@ void CancelWork() ...@@ -48,11 +47,7 @@ void CancelWork()
FreeBuilders(builders); FreeBuilders(builders);
builders = null; builders = null;
// TODO: DkmWorkList.Cancel doesn't currently work when invoked on the completion callback. workList.Cancel(blockOnCompletion: false);
// We continue execute all the queued callbacks -- they will be no-ops.
// See https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_workitems/edit/562781.
//
// workList.Cancel();
// make sure we cancel with the token we received from the caller: // make sure we cancel with the token we received from the caller:
completion.TrySetCanceled(cancellationToken); completion.TrySetCanceled(cancellationToken);
...@@ -71,6 +66,8 @@ void CancelWork() ...@@ -71,6 +66,8 @@ void CancelWork()
runtimeCount++; runtimeCount++;
clrRuntimeInstance.GetActiveStatements(workList, activeStatementsResult => clrRuntimeInstance.GetActiveStatements(workList, activeStatementsResult =>
{
try
{ {
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
...@@ -78,9 +75,22 @@ void CancelWork() ...@@ -78,9 +75,22 @@ void CancelWork()
return; return;
} }
var localBuilders = builders;
if (localBuilders == null) // e.g. cancelled
{
return;
}
if (activeStatementsResult.ErrorCode != 0) if (activeStatementsResult.ErrorCode != 0)
{ {
unexpectedError = activeStatementsResult.ErrorCode; localBuilders[runtimeIndex] = ArrayBuilder<ActiveStatementDebugInfo>.GetInstance(0);
// the last active statement of the last runtime has been processed:
if (Interlocked.Decrement(ref pendingRuntimes) == 0)
{
completion.TrySetResult(localBuilders.ToFlattenedImmutableArrayAndFree());
}
return; return;
} }
...@@ -90,14 +100,26 @@ void CancelWork() ...@@ -90,14 +100,26 @@ void CancelWork()
GroupActiveStatementsByInstructionId(instructionMap, activeStatementsResult.ActiveStatements); GroupActiveStatementsByInstructionId(instructionMap, activeStatementsResult.ActiveStatements);
int pendingStatements = instructionMap.Count; int pendingStatements = instructionMap.Count;
builders[runtimeIndex] = ArrayBuilder<ActiveStatementDebugInfo>.GetInstance(pendingStatements); localBuilders[runtimeIndex] = ArrayBuilder<ActiveStatementDebugInfo>.GetInstance(pendingStatements);
builders[runtimeIndex].Count = pendingStatements; localBuilders[runtimeIndex].Count = pendingStatements;
if (instructionMap.Count == 0)
{
if (Interlocked.Decrement(ref pendingRuntimes) == 0)
{
completion.TrySetResult(localBuilders.ToFlattenedImmutableArrayAndFree());
}
return;
}
foreach (var (instructionId, (symbol, threads, index, flags)) in instructionMap) foreach (var (instructionId, (symbol, threads, index, flags)) in instructionMap)
{ {
var immutableThreads = threads.ToImmutableAndFree(); var immutableThreads = threads.ToImmutableAndFree();
symbol.GetSourcePosition(workList, DkmSourcePositionFlags.None, InspectionSession: null, sourcePositionResult => symbol.GetSourcePosition(workList, DkmSourcePositionFlags.None, InspectionSession: null, sourcePositionResult =>
{
try
{ {
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
{ {
...@@ -105,16 +127,10 @@ void CancelWork() ...@@ -105,16 +127,10 @@ void CancelWork()
return; return;
} }
int errorCode = sourcePositionResult.ErrorCode;
if (errorCode != 0)
{
unexpectedError = errorCode;
}
DkmSourcePosition position; DkmSourcePosition position;
string documentNameOpt; string documentNameOpt;
LinePositionSpan span; LinePositionSpan span;
if (errorCode == 0 && (position = sourcePositionResult.SourcePosition) != null) if (sourcePositionResult.ErrorCode == 0 && (position = sourcePositionResult.SourcePosition) != null)
{ {
documentNameOpt = position.DocumentName; documentNameOpt = position.DocumentName;
span = ToLinePositionSpan(position.TextSpan); span = ToLinePositionSpan(position.TextSpan);
...@@ -127,7 +143,7 @@ void CancelWork() ...@@ -127,7 +143,7 @@ void CancelWork()
span = default; span = default;
} }
builders[runtimeIndex][index] = new ActiveStatementDebugInfo( localBuilders[runtimeIndex][index] = new ActiveStatementDebugInfo(
instructionId, instructionId,
documentNameOpt, documentNameOpt,
span, span,
...@@ -140,13 +156,23 @@ void CancelWork() ...@@ -140,13 +156,23 @@ void CancelWork()
// the last active statement of the last runtime has been processed: // the last active statement of the last runtime has been processed:
if (Interlocked.Decrement(ref pendingRuntimes) == 0) if (Interlocked.Decrement(ref pendingRuntimes) == 0)
{ {
completion.TrySetResult(builders.ToFlattenedImmutableArrayAndFree()); completion.TrySetResult(localBuilders.ToFlattenedImmutableArrayAndFree());
}
} }
} }
catch (Exception e)
{
completion.TrySetException(e);
}
}); });
} }
instructionMap.Free(); instructionMap.Free();
}
catch (Exception e)
{
completion.TrySetException(e);
}
}); });
} }
} }
......
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
<PackageReference Include="EnvDTE80" Version="$(EnvDTE80Version)" /> <PackageReference Include="EnvDTE80" Version="$(EnvDTE80Version)" />
<PackageReference Include="Microsoft.CodeAnalysis.Elfie" Version="$(MicrosoftCodeAnalysisElfieVersion)" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Elfie" Version="$(MicrosoftCodeAnalysisElfieVersion)" PrivateAssets="all" />
<PackageReference Include="Microsoft.ServiceHub.Client" Version="$(MicrosoftServiceHubClientVersion)" /> <PackageReference Include="Microsoft.ServiceHub.Client" Version="$(MicrosoftServiceHubClientVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Engine" Version="$(MicrosoftVisualStudioDebuggerEngineVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="$(MicrosoftVisualStudioDebuggerEngineimplementationVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.UI.Interfaces" Version="$(MicrosoftVisualStudioDebuggerUIInterfacesVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Debugger.UI.Interfaces" Version="$(MicrosoftVisualStudioDebuggerUIInterfacesVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Telemetry" Version="$(MicrosoftVisualStudioTelemetryVersion)" /> <PackageReference Include="Microsoft.VisualStudio.Telemetry" Version="$(MicrosoftVisualStudioTelemetryVersion)" />
<PackageReference Include="Microsoft.VisualStudio.RemoteControl" Version="$(MicrosoftVisualStudioRemoteControlVersion)" /> <PackageReference Include="Microsoft.VisualStudio.RemoteControl" Version="$(MicrosoftVisualStudioRemoteControlVersion)" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册