[PATCH] D142283: [Support] Make llvm-symbolizer runs for stack traces work on Apple platforms
David Blaikie via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 22 12:21:51 PST 2023
dblaikie added inline comments.
================
Comment at: llvm/lib/Support/Signals.cpp:227
+ Args.push_back("--dsym-hint");
+ Args.push_back(DSymHintArgs.back());
+ }
----------------
aprantl wrote:
> dblaikie wrote:
> > aprantl wrote:
> > > aprantl wrote:
> > > > dblaikie wrote:
> > > > > aprantl wrote:
> > > > > > The correct way of locating dSYMs on macOS is to run `mdfind` with the UUID of binary (e.g., https://github.com/llvm/llvm-project/blob/b40bfc1b9e389c154f6c60550dfc010ff8b3658f/lldb/examples/python/crashlog.py#L303). The UUID can be extracted with `dwarfdump --uuid` for example.
> > > > > Does that cover the non-dsym case (debugging/symbolizing from raw .o files) too?
> > > > No, this is strictly for finding .dSYM bundles. The official way of symbolicating on macOS is to use the CoreSymbolication framework which hides all these details and is exposed through tools like `atos`. (That's how the sanitizer runtime does it for example). The other option is to call into LLDB.framework using its public API, but that needs developer tools to be installed on the system.
> > > https://lldb.llvm.org/use/symbolication.html
> > > https://lldb.llvm.org/use/symbols.html
> > >
> > > So technically in addition to running mdfind you'd then also need to run any script in `com.apple.DebugSymbols.DBGShellCommands` ...
> > ah, should we just not make llvm-symbolizer work on macos, then? Should llvm use `atos` for symbolizing on macoS?
> I'm not familiar with llvm-symbolizer and how it's meant to be used. For symbolizing addresses in other Darwin process, I think just having llvm-symbolizer forward to `atos` would be the most future-proof and compatible implementation. But if you use it to e.g., symbolize macOS crashlogs on a Linux server then that would not be an option.
*nod* If the goal is cross-platform, then we'd need some more explicit contract about how to find debug info (both .o and dsym) than "ask atos".
Yeah, guess it depends what folks goals are
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D142283/new/
https://reviews.llvm.org/D142283
More information about the llvm-commits
mailing list