[PATCH] debuginfod: Support queries for ELF/DWARF sections

Frank Ch. Eigler fche@redhat.com
Wed Oct 26 15:28:37 GMT 2022


Hi -

> Is/should the section name be URL-encoded?

Yes!

> I would drop the maybe_debuginfo_section heuristics. There are some
> sections like .strtab/.symtab that are probably in the debug file, but
> might be in the executable. I would assume that a named section can
> normally be found in the debugfile and only use the executable as
> fallback.

That heuristic would work fine for the case of .gdb_index, that
motivated this whole piece of work.  Sure.


> Finally, if the section comes from a file in the cache or if we have to
> download it in full anyway, then extracting the section into its own
> file seems slightly wasteful. It would be great if we could just report
> back "here is the full exe/debug file which does contain the requested
> section name".  [...]

It'd be fine to pass back the extracted section content anyway, even
if the full elf and/or dwarf file is already there.  Consider
federated debuginfod servers.  Intermediate servers may be
willing/able to do this extraction on behalf of clients who really
only want the section in question.  And if they cache the result, as
in amerey's draft code, then this will also help accelerate other
future clients.  That's just the usage scenario (gdb acceleration).


> int
> debuginfod_find_section (debuginfod_client *client,
>                          const unsigned char *build_id,
>                          int build_id_len,
>                          const char *section, char **path,
>                          bool *file_is_elf)
> 
> Maybe that is over-designed to avoid a little bit of disk waste?

(Then the client code would have to learn elfutils API internals in
order to extract the section it was actually interested in.)


- FChE



More information about the Elfutils-devel mailing list