-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[debugger] Fix a step that becomes a go #110484
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, Thanks!
The failure is not related with this PR: #110285 |
/backport to release/9.0-staging |
Started backporting to release/9.0-staging: https://github.com/dotnet/runtime/actions/runs/12237655044 |
* Fixing step becomes a go * Trying to avoid step that becomes a go * Adding comments and more protections. * fixing comment * Checking if removing this comments, CI failures are gone. * Adding part of the changes to understand the failures on CI * Update src/coreclr/debug/ee/controller.cpp Co-authored-by: mikelle-rogers <[email protected]> * Fixing wrong fix. --------- Co-authored-by: mikelle-rogers <[email protected]>
After some tests we were able to understand that when we are stepping and the single step is enabled we can get on TriggerSingleStep in a Native code and then disable the single stepping wrongly.
This is the call stack that we see when the error happens:
The goal of this PR is to avoid disabling the single step when we get in this scenario.
So we added two protections on ThreadSuspend to avoid an APC when we are single stepping. And we also added a protection on controller.cpp to avoid disabling single step in this scenario.
Fixes #109785
Fixes #109812
Fixes #109885