@PascalDragon,
I knew about the LLVM folks having fully reversed engineered the PDB format as well as MS' contribution (which doesn't compile!), OTH, the last time I looked at their stuff was a few years ago (more than 4) and, at least at the time, there was no _published_ documentation from LLVM about the PDB format (and following their code was no picnic!.)
I see now that the documentation is much better and, from the link you posted, there is code that seems reasonably usable to understand the format without incurring a very steep learning curve.
Thank you for the update. It's good to know there have been improvements in that area.
I wouldn't mind FpDebug to be extended to read it directly. If someone wants to do that.
Assuming that there are no licensing issues, but if lldb does then....
Layman's opinion: given LLVM's ability to use the format (which they reversed engineered with only some/partial help from MS), it seems MS is "ok" with third parties using the format (but, it is still suspicious they don't document it.)
I've been "looking" at the PDB format for a long time, since Undocumented Windows 2000 by Sven Schrieber. Since MS doesn't document it, any changes, which there have been a great many through the years, could be problematic for any program directly reading the format.
Personally, I'm leaning towards using the "cv2pdb" approach which uses MS provided facilities (API's) to read the PDB and convert the information to DWARF. I believe that is a safer and more stable approach in the long run. The downside is: an external ".dbg" must be created and Lazarus be given the ability to find it so it can use it.
That said, I certainly would not have anything against someone creating a direct PDB reader in Pascal with could potentially be included into Lazarus but, as previously stated, I think it is risky in the long run. I can't help feeling uneasy about it.
Somewhat related observation about the PDB symbols. I routinely dis-assemble MS executables (mostly Windows system dlls) and, one of the things that is noticeable is that the debug information they publish has been "fiddled" with to some extent. This lowers the value of the PDB information they make available.
It would be _very_ nice to augment/correct the PDB information. I think that, when it comes to creating debugging symbols, the DWARF specification is a more reasonable/safer avenue. That's the objective that has captured my attention for the time being.