kevinfrei wrote:

> First off, thank you for working on this. `debuginfod` has been on my radar 
> since support was added to LLVM and I was curious at which point someone was 
> going to add support for it to LLDB. I wasn't super familiar with what 
> exactly it provides, and in case others here aren't either, I found the 
> following documentation very helpful: 
> https://llvm.org/doxygen/Debuginfod_8h.html. TL;DR: it gives you a way to get 
> sources, (symbol rich) executables and debug info files.
> 
> The functionality `debuginfod` offers seems very similar to `dsymForUUID` 
> (see https://lldb.llvm.org/use/symbols.html). We have series of functions 
> such as `LocateExecutableObjectFile` and `LocateExecutableSymbolFile` in 
> `LocateSymbolFile.h` that abstract over this. It seems appropriate that we 
> use the same abstractions for `debuginfod` which avoids the special casing 
> this patch introduces and a lot of things will "just work".
> 
> The one caveat is that the current implementation is really tied to a 
> platform. All the `dsymForUUID` stuff is implemented in 
> `LocateSymbolFileMacOSX.cpp`. I think we might need to move this to a Plugin 
> model where we can have multiple implementations. The plugin name 
> `SymbolVendor` is already taken so I would call this the `SymbolServer` 
> plugin. Converting the current model to a plugin should be done in separate 
> patch and myself or other Apple folks can make sure this doesn't break the 
> dsymForUUID paths (we have some tests but not enough given how critical this 
> is for us). With that done, it should be trivial to add a plugin 
> implementation that calls into `debuginfod`

Yes, that specific kind of refactoring seemed like a good idea, but given that 
this is my first real foray into the LLDB space, I didn't want to bite off that 
much work to start with. Once I've got the full DEBUGINFOD capabilities 
plumbed, refactoring it out into a SymbolServer plug-in makes lots of sense.

You can also read about the full DebugInfoD protocol (it's not very 
complicated) [from the RedHat blog introducing it in 
2019](https://developers.redhat.com/blog/2019/10/14/introducing-debuginfod-the-elfutils-debuginfo-server#).

https://github.com/llvm/llvm-project/pull/70996
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to