dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.43k stars 4.76k forks source link

Step becomes a "go" in .NET 9 #109785

Open gregg-miskelly opened 1 week ago

gregg-miskelly commented 1 week ago

Description

.NET 9 contains a regression where ICorDebugStepper's are not always firing. The issue is non-deterministic, and causes intermittent failures in our debugging tests, and we have had a few customers reports of the problem.

Reproduction Steps

A Microsoft employee can reproduce this problem by:

  1. Enlisting in the 'Concord' repo
  2. Following instructs in '/glass.md' for setting up a local test environment
  3. Open Test Explorer
  4. Enter “CSAsyncStepOverinTryBlock-NetCore-Latest-x64” in the filter box
  5. Navigate to the test
  6. Right click and invoke “Run Until Failure”

Expected behavior

Stepper should complete

Actual behavior

Stepper sometimes fails to detect when it is complete and this the debugger behaves as if there was no stepper

Regression?

This regressed between .NET 8 and .NET 9

Known Workarounds

None

Configuration

So far all of the reports are from Windows, but I don't know if this is actually a causal connection. We have at least mostly seen this on x64, but again, I am not sure if that is actually a causal connection or just because that is the most frequent configuration

Other information

No response

dotnet-policy-service[bot] commented 1 week ago

Tagging subscribers to this area: @tommcdon See info in area-owners.md if you want to be subscribed.