feat: debug images for Portable PDB#2050
Conversation
|
|
Thanks @vaind for picking this up ❤️ Serverside everything should be ready, you should be able to upload portable pdb files via sentry-cli, and serverside symbolication should pick up the new event properties. Feel free to reach out to me anytime if you need help. |
24f1816 to
8567b0f
Compare
a23941d to
a664893
Compare
bruno-garcia
left a comment
There was a problem hiding this comment.
First pass. I'll come back to review those AssemblyReaders and other bits
|
Forgot to thank you for doing this. This is a huge step for Sentry's .NET support. 🙏 |
Swatinem
left a comment
There was a problem hiding this comment.
I haven’t reviewed the AssemblyReader in too much detail.
lgtm, though I would rather defer proper review to @bruno-garcia
ceca6c0 to
aac53d8
Compare
This adds new protocol fields to StackFrame and DebugImage that are needed for server side Portable PDB symbolication. The StackTraceFactory is also extended in such a way that it collects referenced DebugImages which are then later added to the event.
|
Almost done here. Some failures to investigate. Will finish and merge soon. Overall looking pretty good. 🙂 |
|
There's an issue with Verify getting in the way here. Addressing that in #2092. |
|
@vaind - I pushed some changes to address the items I saw, and merged this. Got caught on the unrelated Verify issue along the way, but that's fixed now too. The main changes were:
Everything else was minor refactoring and a few script changes. Overall things looked pretty good to me. Thanks for your hard work on this one! I did see a few unused items in
Thanks. |
This adds the new event properties defined in RFC 0013, namely InstructionAddress / FunctionId + Relative Indexing, and a list of
pe_dotnetDebugImages.ISentryStackTraceFactoryTODOs & followups
generate PDBs for Sentry libraries (see the asp.net (or Android) event below)(see sentry-cli uploading PDBs fails when symbols embedded #2073)MergeDebugImagesInto()Event examples
Notice the presence of the "Images loaded" section and the line numbers in (full) stack traces. All apps were built with the following commands before executing:
System.Private.CoreLib.dllfrom a MS symbol server