Skip to content
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

debuginfod support for fetching debuginfo on the fly #262

Open
fche opened this issue May 11, 2021 · 3 comments
Open

debuginfod support for fetching debuginfo on the fly #262

fche opened this issue May 11, 2021 · 3 comments
Labels
needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@fche
Copy link

fche commented May 11, 2021

https://github.com/pixie-labs/pixie/blob/d9edd5d86db11964c1f00137e691be332cb169d4/src/stirling/obj_tools/elf_tools.cc#L94

The debuginfod protocol/service is a way of letting tools like pixie download dwarf debuginfo on the fly, based on a build-id, from an HTTP server. The elfutils library provides a client side library or command-line tool, or one can make an HTTP request directly. Several distros run servers, and people can run their own.

https://sourceware.org/elfutils/Debuginfod.html

@yzhao1012
Copy link
Contributor

Pixie uses https://github.com/iovisor/bcc and https://github.com/iovisor/bpftrace.
Both bcc & bpftrace already uses debuginfod: bpftrace/bpftrace#1774

Pixie itself also uses dwarf info outside of bcc & bpftrace. For example, Pixie uses dwarf info to generate BCC C code for https://docs.px.dev/tutorials/custom-data/dynamic-go-logging/.

We are investigating rupran/bcc@3f446c4, and see how to make similar changes to dynamic-go-logging to utilize debuginfod client.

@yzhao1012
Copy link
Contributor

@fche Could you provide an instruction of how to install debuginfod on ubuntu? I could not fine such instructions.
Also an instruction for build and run debuginfod from source is also needed for experimentation, as we might need to build docker image of debuginfod to use it on kubernetes cluster.

@fche
Copy link
Author

fche commented May 25, 2022

https://packages.ubuntu.com/search?searchon=sourcenames&keywords=elfutils
versions >0.179 include debuginfod client & server code.

Building from source is the usual autoreconf; configure; make all install.

@zasgar zasgar added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Jul 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

3 participants