[RFC] Add SymbolLocator for Windows PDB Symbol Servers in LLDB

Can you share why you believe this to be Microsoft-centric? The protocol is:

  • extract build ID from executable
  • walk symbol stores (explicitly specified or loaded from environment via _NT_SYMBOL_PATH)
    • for each store, attempt to copy the debug info (continue if failed, break if succeeded)

There is nothing Microsoft centric in this model. The build ID is stored as a RSDS record in PE/COFF, but you can store it as a .gnu.build-id note in ELF, or a LC_UUID load command in MachO.

You can generate the path to a PDB, dSYM, or DWP relative to the store base location.

In fact, you technically also use the symbol store to download the executable. This is helpful if you are doing a post-mortem diagnosis, and wish to retrieve the DLLs associated with the minidump (which amusingly enough I believe breakpad also uses on all platforms).

2 Likes