-
Notifications
You must be signed in to change notification settings - Fork 6
Various fixes from the getsentry/pdb issue tracker #2
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
Various fixes from the getsentry/pdb issue tracker #2
Conversation
+ fix typo
Added symbols: - S_TOKENREF - S_LMANPROC - S_GMANPROC
Added base for S_OEM parsing, needs improvements in future.
Added support for: - S_MANSLOT - S_MANSLOT_ST
+ support for env block symbol
+ support for PE section symbol
+ support for COFF group symbol
|
There are also two pull requests for getsentry/pdb which I intentionally did not include in this bundle:
|
|
For getsentry#154 -- the PDB files in question come from dotnet built with crossgen2, which is a dotnet tool that pre-JITs assemblies for faster startup. These PDB files contain debug info for that pre-JITted code, and are needed for (in the particular use case) samply to identify any useful info about stacks that contain that code. The PDB files seem to be very minimal -- they're generated by crossgen2 directly, and as such don't contain the same info that pdb files generated by cl or similar contain. The solution in that PR was the simplest that got the desired results when working with these files. I don't think it would ever really be hit in any other use case, because typically the section headers will be present otherwise. |
afranchuk
left a comment
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 are a few minor issues/questions I'd like addressed, otherwise it looks good!
|
Thanks for the review! As noted in the description, this is a bundle of changes by other people from the pdb issue tracker. As a result I can't really say anything about the original intention of each author. How would you prefer that I address them - should I amend the original commits, or add a "fixes" commit to the pull request? |
|
I would normally say to amend the commits, but as they are pulled from elsewhere a fixes commit would be more appropriate. Most of these are minor, the important ones are probably #2 (comment) and #2 (comment). |
|
If you're taking my one PR you may want the various other changes I made since then. See https://github.com/Vector35/pdb-rs/commits/master/ Is there a consensus on which version of this repo is maintained? The v35 one is not super active and the getsentry one has been effectively untouched for 2+ years. Would love to have somewhere to contribute changes back to, but I don't think I have the time to maintain it myself through my work. |
This one is published to crates.io as |
|
@michal-kapala and @CouleeApps - should I remove your changes from this PR? |
You're welcome to include any changes I've made (they are under the MIT/Apache2 license after all) but I don't forsee getting much time at work to maintain this in the near future. |
I'd appreciate a merge with the typo fixes, my PR was self-contained and stable, just an occasional one from me |
That's not necessarily an argument against merging your changes. Otherwise, by that logic, we should discard most of the pdb code, since the original authors at sentry.io are no longer maintaining it. |
|
As far as I can tell I've addressed the open points with the updated PR |
- The From<u8> implementation for SourceLanguage used the wrong constants for Rust and Go. - characteristics of the SectionSymbol are of type SectionCharacteristics instead of u32. - The comment for CoffGroupSymbol has been fixed. - CoffGroupSymbol was defined incorrectly: the segment is alreday part of the PdbInternalSectionOffset and should not appear separetely. - A unit test for S_COFFGROUP / CoffGroupSymbol has been added, to verify the handling of the segment - VirtualTableShapeType now contains a Vec of VirtualTableShapeDescriptor, instead of u8. An internal conversion function from u8 to VirtualTableShapeDescriptor was added
1b3a65a to
ebecb2b
Compare
|
Hi, do you need anything else from me? |
This is a bundle of various fixes I gathered from the getsentry/pdb issue tracker:
SourceLanguagevariants getsentry/pdb#157 by @Walnut356DebugInformation::is_strippedto easily query to see if PDB is stripped getsentry/pdb#143 by @DrChat