Comments (1)
Raw PDB does not provide this functionality.
In order to get the PDB that matches a certain EXE/PE file, you have to perform the following steps:
- Fetch the sections from the PE file
- Grab the IMAGE_DEBUG_DIRECTORY entries from the IMAGE_DIRECTORY_ENTRY_DEBUG in the data directory of the optional header
- Look for the debug directory of type IMAGE_DEBUG_TYPE_CODEVIEW
- Check if the raw data of the entry matches a PDB 7.0 header, and grab the info from there
This gives you the PDB path, GUID, and age.
Using this PDB path, you have to check yourself whether the corresponding PDB file can either be found in the directory in which the PE file is stored, or at the absolute path given by the PDB path.
Once a PDB file has been located, you then have to check whether its GUID and age match the ones stored in the PE debug directory.
This is quite a bit of very Win32/PE-specific code, so I don't believe the library itself should contain that. However, should more people need it, I could add an example for it.
from raw_pdb.
Related Issues (20)
- Examples project: NULL pointer dereference HOT 2
- Tons of warnings emitted when building with clang 13.0.1 HOT 3
- Examples project: NULL pointer dereference from appending NULL string HOT 5
- Crash when trying to read symbols from `LLVMCodeGen.pdb` HOT 3
- Can't build HOT 3
- How to get type size HOT 1
- Rewrite PDBs? HOT 11
- Examples fail to compile on Ubuntu 22.04.2 HOT 2
- Unhandled TypeRecordKind 0x1609 HOT 11
- Default MSFStream Type - CoalescedMSFStream vs DirectMSFStream HOT 2
- Unhandled TypeRecordKind 0x110B HOT 1
- ExampleFunctionSymbols trampling HOT 2
- Unhandled record kind 0x1179 HOT 6
- ExampleTypes assert in DisplayFields() HOT 4
- Qt6WebEngineCore.pdb error HOT 18
- Why are so many rva the same, but the functions are different
- jpeg62.pdb bug HOT 2
- Microsoft.VisualStudio.Coverage.Monitor.pdb bug HOT 9
- I am not sure I understand the validity of PDB_NO_ALIAS HOT 2
- Can a pdb file be modified? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from raw_pdb.