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).