-
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
Implement support for Embedded Portable PDB #12711
Conversation
@dotnet/roslyn-compiler Please review. |
@jaredpar I have not added /debug:windows. I thought about it and concluded that it'd be mostly adding noise -- I don't think anyone would really use it. If you feel strong about it I can certainly follow up and add it. We could also wait for customers to ask for it. |
I've gone back and forth on this. At this point I think we're fine not implementing |
@@ -8394,11 +8420,13 @@ private void VerifyQuotedInvalid<T>(string name, string value, T expected, Func< | |||
[Fact] |
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 we add a test which validates that on Linux we are choosing the correct PDB format? Either use ConditionalFact or run on both OS and verify that on Linux we use Portable, and Windows PDB
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.
Ah I see where you added those.
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.
This test does validate that on Linux/Mac we use Portable PDB and otherwise Windows PDB. ConditionalFact does the same check of PathUtilities.IsUnixLikePlatform
value as the line below.
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 am not sure this is the only check we need. I didn't test this but I believe it'll still not work because COM support in Mono on Windows is not really working.
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.
That's unfortunate. #12753 states that /debug:full
is OS specific, but not runtime specific. Does Mono not support COM at all? The interop we need is very simple (no COM registration needed). We P/Invoke native dll that directly returns COM object, which we then call methods on.
@jaredpar Keeping it in a back pocket sounds good to me. |
CC @dotnet/roslyn-compiler now that this is out for official review. 👍 from me. |
@dotnet/roslyn-compiler Ping. |
LGTM |
All the tools that consume standalone portable PDBs - the debugger, the CLR stack trace library, dotnet cli test tool, etc. |
Implements #12390 and #12753