Is anyone working on implementing DebugInfo/PDB that doesn’t depend on DIA? What would it take to have minimal implementation that would allow to take a PDB file and look up symbols using llvm-symbolizer on a non-Windows (e.g. Linux or MacOS) platform?
Adrian is actually working on that, but with more of an eye towards getting LLDB to read PDBs on non-Windows OSs. It might also be useful to get llvm-symbolizer working as an intermediate step in that work.
It seems that the very minimal implementation would need to fill in the body of NativeSession::findSymbolByAddress() which currently returns nullptr. I’m not familiar with the code, but if someone could outline what need to be done and if it can be done in a week or so I would be willing to do that.
Yes, as Reid says, I’m working on that.
Under DebugInfo/PDB, you’ll see an abstract API for accessing PDB symbols. There’s currently one concrete implementation under DebugInfo/PDB/DIA, which (surprise) uses DIA. I’m working on a non-API implementation under DebugInfo/PDB/Native.
My first goal is to get llvm-pdbutil to pretty-print the contents of a PDB using this Native reader. From there, I was planning to integrate into LLDB. llvm-symbolizer wasn’t on my radar, but it makes sense.