[PATCH] D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer.
Nico Weber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 3 15:38:37 PST 2022
thakis added a comment.
@dblaikie, @phosek, @noajshu, @hans and I met (online) last month and talked about this for a bit.
The summary was the following action items:
- have Debuginfod have a callback and put http request in llvm-symbolizer, and make llvm-symbolizer instead of Debuginfod depend on libcurl (iirc @phosek offered to look at that)
- maybe have an llvm-symbolizer mode that doesn't do requests
- maybe have a way to explicitly request pre-downloads of debug info
----
Some notes about things mentioned during the meeting:
Concerts with the approach:
- separation of concerns is generally good; compiler shouldn't depend on network
- libcurl now makes it into the deps of llvm.so
- some linux distros link it dynamically, so clang now depends on it transitively
- consider llvm-symbolizer copied via adb to a device that has funky connectivity (easy to see this causing timeouts);
- bootstrapping
- parallelism, no write blocking if pre-read
- would download in parallel atm
These concerns don't apply in all scenarios:
- .o storage might networked anyways, so less a concern there
- might have to pull stuff for dlopen()'d shared libraries
- would be happy if libllvm.so didn't depend on libcurl
- care about llvm-symbolizer and lldb
- current setup: build system image on one machine, strip binaries, upload debug info to GCS, then runs tests based on image, and then at runtime downloads debug info on demand
- can't pull all debug info for all binaries, too much storage
- been using this model for 3 years now, seems to work fine
- current thing not debuginfod based
- is opt-in based on env vars, so is that really different from having your debug info on a fuse mount
- (someone might add cmake var)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113717/new/
https://reviews.llvm.org/D113717
More information about the llvm-commits
mailing list