Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Base work to address #721.
This is still very much WIP, but provides a framework to go on implementing PDB parsing.
It's currently able to load the corresponding .pdb file and its internal content streams. Only the necessary components were implemented (ie. many [header] fields are ignored if not directly relevant), and we still need to figure out how to get from an address to a source line information record. Yet I tried to keep in mind that we may want to provide a PDB library for other usecases that error traces, so it should be relatively easy to extend.
As such, the code is still full of debug output, and probably not zig-idiomatic. I was advised on IRC to make a PR for review.
Resources:
https://llvm.org/docs/PDB/index.html
https://docs.microsoft.com/fr-fr/windows/desktop/Debug/pe-format
LLVM source code (especially
lld
andpdbutil
)