-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notes... #1
Comments
http://lldb.llvm.org/symbols.html mentions a |
👍 thanks for this! |
Breakpad has some code for handling this sort of thing that might be useful. On Linux if you run dump_syms on a binary that has been stripped but contains a .gnu_debuglink we hit these code paths: They require passing the debug directories to search on the dump_syms commandline, though. I don't know that there's a standard way to locate that. Nowadays all binaries have a build id in the ELF headers, which you can also use for lookup, which might be the simpler path. You can take a build id Breakpad has code for reading build ids from ELF headers, but not for locating debug symbols based on them: For finding debug symbols that aren't installed...there's not a really good story here. Fedora has a thing called Darkserver that will let you find RPMs by build id, but there's no equivalent that I know of for Ubuntu. On Mac, there's some code for locating the actual file inside of a dSYM bundle: ...but you have to pass the paths to the binary and the dSYM on the dump_syms commandline, it won't locate the dSYM for you: LLDB has support for locating dSYM bundles by way of That's a private framework and I can't find any documentation on it, but it's a thing that exists. It even has support for "run a script to fetch symbols on-demand", which is neat. (I keep meaning to make that work with Mozilla's symbol server.) I've seen references to using Spotlight for locating dSYMs, specifically the command |
@luser just realized I never thanked you for this knowledge dump -- thank you very much! |
I wrote a little tool using |
Useful info:
Looks like we want the contents of the
.gnu_debuglink
section, and we probably want to validate the CRC too. It seems like maybe we can call out to thefind-debuginfo.sh
script?For MacOS, there doesn't seem to be a section linking to the proper .dSYM bundle. It seems like
dsymutil
generates these bundles. Perhaps we will just have to rely on the .dSYM bundle being where we expect it to be?The text was updated successfully, but these errors were encountered: