-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Enable embedding sources to Windows PDBs #21391
Conversation
<MicrosoftDiaSymReaderPortablePdbVersion>1.3.0</MicrosoftDiaSymReaderPortablePdbVersion> | ||
<MicrosoftDiaSymReaderVersion>1.2.0-beta1-62008-01</MicrosoftDiaSymReaderVersion> | ||
<MicrosoftDiaSymReaderConverterXmlVersion>1.1.0-beta1-62008-01</MicrosoftDiaSymReaderConverterXmlVersion> | ||
<MicrosoftDiaSymReaderNativeVersion>1.7.0-private-25604</MicrosoftDiaSymReaderNativeVersion> |
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'll replace this with official bits once they are available.
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.
Turns out VCTools are not being inserted into VS 15.5 yet. There won't be any official builds until next week. As long as we don't insert the private bits into VS (#21420 removes DSRN from insertion) it is ok to use them.
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.
Is this the version of the native PDB writer that supports full determinism?
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.
Yes, that change is in the branch I built from.
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.
Can you pull in the powershell change from this PR?
https://github.com/dotnet/roslyn/pull/20527/files
That should pass now and keep us clean.
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.
Sure.
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.
Actually, let me do that in a separate PR. Determinism is not really related to this change.
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.
Gotcha. Don't worry about a second PR then. I'll just rebase mine against these changes once they're merged.
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.
OK. Have you seen my email to YongKang about PDBs not being deterministic when writing twice within the same process? Might affect compiler server.
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.
Yeah I saw that. It didn't seem to affect our tests for some reason. Maybe just got lucky. But definitely need to get that fixed before we declare it "done".
@richlander FYI |
9f3d1e2
to
1fdb83e
Compare
1fdb83e
to
b6756c3
Compare
@jaredpar The unit test run failed in RunTests.Cache.ContentUtil:
|
test windows_debug_unit32_prtest please |
That's bizzare. It's not failing with that anywhere else and I don't see anything in yourchange that would cause that |
/// </summary> | ||
/// <remarks> | ||
/// This is done after serializing method debug info to ensure that we embed all requested | ||
/// text even if there are no correspodning sequence points. |
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.
Typo: corresponding. (This was me, sorry.)
@tannergooding No insertion coordination is needed. |
break; | ||
case "/debug:full": | ||
ValidateEmbeddedSources_Windows(expectedEmbeddedMap, dir); | ||
break; |
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.
Is "/debug:full"
tested?
Next | ||
Finally | ||
symReader?.Dispose() | ||
End Try | ||
End Sub |
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.
Can these helper methods be shared between C# and VB, perhaps in PdbTestUtilities
?
LGTM |
@dotnet/roslyn-compiler Can I have a second compiler sign off please? |
…throw-statement-expression * dotnet/features/ioperation: (41 commits) Update CSharpReplaceMethodWithPropertyService.cs Add VB side of fix. Remove unneeded function. Improve trivia preservation when converting methods into a property. VB side of do-not-simplify-nameof if it changes semantics. Do not simplify to an alias in a nameof if it changes the value of hte nameof. Include System.Runtime.Serialization.Primitives and System.Security.Cryptography.Csp in PortableFacades CoreXT package. (dotnet#21438) Address one more refactoring feedback Address PR feedback Fix possible race conditions in TestExtensionErrorHandler Fix expected test results to properly consider trivia Improve messages when tests fail due to expected text Default to considering trivia during testing Remove RemoveUnneededReferences from LamdaRewriter (dotnet#21367) Enable embedding sources to Windows PDBs (dotnet#21391) re-enabled assert we have disabled Do not insert Microsoft.DiaSymReader.Native (dotnet#21420) Recommend 'case' keyword after a pattern-case-clause. Fix NamedArgumentInParameterOrderWithDefaultValue test for new IOperation output. Resolving merge conflict ...
…-literal-text * dotnet/features/ioperation: Update CSharpReplaceMethodWithPropertyService.cs Add VB side of fix. Remove unneeded function. Improve trivia preservation when converting methods into a property. VB side of do-not-simplify-nameof if it changes semantics. Do not simplify to an alias in a nameof if it changes the value of hte nameof. Include System.Runtime.Serialization.Primitives and System.Security.Cryptography.Csp in PortableFacades CoreXT package. (dotnet#21438) Address one more refactoring feedback Address PR feedback Fix possible race conditions in TestExtensionErrorHandler Fix expected test results to properly consider trivia Improve messages when tests fail due to expected text Default to considering trivia during testing Remove RemoveUnneededReferences from LamdaRewriter (dotnet#21367) Enable embedding sources to Windows PDBs (dotnet#21391) re-enabled assert we have disabled Do not insert Microsoft.DiaSymReader.Native (dotnet#21420) Resolving merge conflict Don't pick a project arbitrarily when navigating to symbols
…tatement-refactor * dotnet/features/ioperation: Update CSharpReplaceMethodWithPropertyService.cs Add VB side of fix. Remove unneeded function. Improve trivia preservation when converting methods into a property. VB side of do-not-simplify-nameof if it changes semantics. Do not simplify to an alias in a nameof if it changes the value of hte nameof. Include System.Runtime.Serialization.Primitives and System.Security.Cryptography.Csp in PortableFacades CoreXT package. (dotnet#21438) Address one more refactoring feedback Address PR feedback Fix possible race conditions in TestExtensionErrorHandler Fix expected test results to properly consider trivia Improve messages when tests fail due to expected text Default to considering trivia during testing Remove RemoveUnneededReferences from LamdaRewriter (dotnet#21367) Enable embedding sources to Windows PDBs (dotnet#21391) re-enabled assert we have disabled Do not insert Microsoft.DiaSymReader.Native (dotnet#21420) Resolving merge conflict Don't pick a project arbitrarily when navigating to symbols
…oalescingexpression-refactor * dotnet/features/ioperation: Update CSharpReplaceMethodWithPropertyService.cs Add VB side of fix. Remove unneeded function. Improve trivia preservation when converting methods into a property. VB side of do-not-simplify-nameof if it changes semantics. Do not simplify to an alias in a nameof if it changes the value of hte nameof. Include System.Runtime.Serialization.Primitives and System.Security.Cryptography.Csp in PortableFacades CoreXT package. (dotnet#21438) Address one more refactoring feedback Address PR feedback Fix possible race conditions in TestExtensionErrorHandler Fix expected test results to properly consider trivia Improve messages when tests fail due to expected text Default to considering trivia during testing Remove RemoveUnneededReferences from LamdaRewriter (dotnet#21367) Enable embedding sources to Windows PDBs (dotnet#21391) re-enabled assert we have disabled Do not insert Microsoft.DiaSymReader.Native (dotnet#21420) Resolving merge conflict Don't pick a project arbitrarily when navigating to symbols
Finishes implementation of #12625 for Windows PDBs.
The feature was only completed for Portable PDBs due to bugs in Microsoft.DiaSymReader.Native that are now fixed.
The first couple of commits change the PDB validation to treat order of data as significant. Previously we used AssertXml helper that ignores order.
Resolves #13707.