-
Notifications
You must be signed in to change notification settings - Fork 4k
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
EE: Handle notification when metadata has been invalidated #75423
Conversation
@@ -20,1179 +20,8 @@ public enum DkmExceptionCode | |||
E_FAIL = -2147467259, | |||
// | |||
// Summary: | |||
// A debugger is already attached. | |||
E_ATTACH_DEBUGGER_ALREADY_ATTACHED = -2147221503, |
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.
Only a few of these values were used, and many were missing. Reduced this to just those values that are used, including the newly referenced value.
@@ -23,6 +22,7 @@ namespace Microsoft.CodeAnalysis.ExpressionEvaluator | |||
public abstract class ExpressionCompiler : | |||
IDkmClrExpressionCompiler, | |||
IDkmClrExpressionCompilerCallback, | |||
IDkmMetaDataPointerInvalidatedNotification, | |||
IDkmModuleModifiedNotification, |
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.
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.
I think I'd prefer keeping the implementation of IDkmModuleModifiedNotification
, for robustness, assuming it doesn't conflict with IDkmMetaDataPointerInvalidatedNotification
.
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.
They will not conflict - just a bit of a perf overhead since now Rosyln will be notified twice anytime, we modify an assembly.
<PackageVersion Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="17.8.1072001-preview" /> | ||
<PackageVersion Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="17.8.1072001-preview" /> | ||
<PackageVersion Include="Microsoft.VisualStudio.Debugger.Engine-implementation" Version="17.13.1100701-preview" /> | ||
<PackageVersion Include="Microsoft.VisualStudio.Debugger.Metadata-implementation" Version="17.13.1100701-preview" /> |
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.
Do we need to reference a newer version of Microsoft.VSSDK.Debugger.VSDConfigTool (at line 67) as well, so that VSDConfigTool.exe
recognizes the added interface? #Closed
@tmat, @dotnet/roslyn-compiler, please review. |
The failures in the integration tests ( |
FYI Debugger changes are in VS Main 35408.49 |
Locally, I was able to run the following integration tests successfully with Visual Studio 35408.184, with a
And with |
This reverts commit 8cfc30a.
@dotnet/roslyn-compiler, @tmat, for a second review please. |
Implement notification interface in the EE to ensure assembly metadata is discarded before being invalidated.