symbolic
symbolic copied to clipboard
include pe_file in the symcache and a way to extract it
The Breakpad SYM file has an INFO line that includes the PE filename.
As near as I can tell, that information isn't captured in the symcache or exposed via the API.
Can that information get captured in the symcache and exposed via the API?
This sounds very reasonable to me.
FYI, I don't believe this is actually stored in PDB files anywhere? The Breakpad implementation reads it out of the PE headers. However, minidumps conveniently include this information, so that given a minidump you can locate the matching PE files via a symbol server.
I don't know where this INFO line comes from, but it's in the sym files we've got on Mozilla Symbols Server.
In my case, I'm not symbolicating a stack in a minidump, so I don't have minidump things available.
I'm game for other ways to figure this out.
Generally, it'd be helpful to toss other things in INFO and have that available from the symcache. We're doing something like that to store the sym file origin:
https://github.com/Gankra/rust-minidump/blob/d50640b8d71a34037e26ae59098ed795ca030f06/breakpad-symbols/src/lib.rs#L403-L406
I don't know where this INFO line comes from, but it's in the sym files we've got on Mozilla Symbols Server.
The dump_syms that creates those files gets it from the PE files:
https://github.com/mozilla/dump_syms/blob/7fc891c7ff44d7b4a62951f94f22729ec66d0622/src/windows/pdb.rs#L532
This is annoying, because symbolic mostly prefers to work directly with debug files, not binaries. However, there's definitely code in symbolic-minidump to handle binaries because for some platforms that's where the unwind info is.
I don’t think this is worth supporting directly.
- This information is not available in all possible source files
- You can rename executables as you fit anyway (though I believe having the original name as outputted by the linker is part of the desire here).
- As we access files and symcaches via info and file names from minidumps, they have the filename as it is run, not the filename as embedded in the file, so we are failing symstore lookups anyway for electron distributions that just rename the main electron file.
- This is purely informational and we do not use it currently.