PDB File Processing #3662
Replies: 4 comments
-
I believe this is what the "PDB Universal" analyzer option is. |
Beta Was this translation helpful? Give feedback.
-
Yes that's it, is there a reason the old MSDIA parser is still in the source? Is it to be a temporary solution in case the PDB format changes drastically? Also the PDB Universal analyzer doesn't parse function parameter names does it? Is there a reason since they are available in the PDB? |
Beta Was this translation helpful? Give feedback.
-
To answer my own question the implementation of function parameter names was never finished for PDB Universal. Since ghizard hasn't commited in some time ill implement it myself. Also the old MSDIA parser doesn't seem supported as it has not been updated in some time and is starting to struggle to keep up with newer Ghidra code. I personally believe that the GHIDRA/FEATURE/PDB would be better without it, because at this point the new parser performs as good as the old one and in case of release of a new format (which does not happen often), it would be easier to just update the new parser then to put the old one back in shape. Any thoughts? If the community is inclined I would like the restructure the file structure of GHIDRA/FEATURE/PDB and cut off the old parser entirely. |
Beta Was this translation helpful? Give feedback.
-
@ccharest93... what @astrelsky said is correct regarding "PDB Universal" being the pure java implementation. Regarding the function parameters... this is an area that I struggled with and did not complete because I did not understand the appropriate way to make it work correctly. I took several stabs at it, and we released 9.2 without it with the hopes of getting back to it sooner. You are welcome to try to figure it out, but it is important to confirm that a solution works against a variety of programs for different architectures and build chain versions. Regarding MSDIA... it is not my intent to eliminate the MSDIA version of PDB processing in the near term, as it still provides both a fall-back implementation and a counterpoint implementation until I can get some additional features done, such as object-oriented work (not done in either version) and function parameters (noted above). Also, when MSFT released their code as documentation, they only provided the on-disc format, but the majority of the effort went into building up the middle layer through analysis and trial and error, and the MSDIA version can still provide counterpoint against the undocumented middle-layer development that still has much room to mature. (And, yes, MSFT has indicated that the format is slow-to-change, which is the only reason why we took on a java-based version in the first place.) We generally will not accept any file structure changes, though we like input from the community. For PDB, besides keeping MSDIA for a bit, there are some possible other projects that need to fit into the folder structure. |
Beta Was this translation helpful? Give feedback.
-
In README_PDB.html, we can find "In the near future GHIDRA will adopt a pure Java implementation which will eliminate the Microsoft Windows native execution issue and the use of an intermediate XML format."
I was wondering if this project is still ongoing and how I could contribute.
Beta Was this translation helpful? Give feedback.
All reactions