From: Andrii Nakryiko <andriin@xxxxxx> This patch set adds a new `bpftool btf dump` sub-command, which allows to dump BTF contents (only types for now). Currently it only outputs low-level content, almost 1:1 with binary BTF format, but follow up patches will add ability to dump BTF types as a compilable C header file. JSON output is supported as well. Patch #1 adds `btf` sub-command, dumping BTF types in human-readable format. It also implements reading .BTF data from ELF file. Patch #2 adds minimal documentation with output format examples and different ways to specify source of BTF data. Output format is mostly following existing format of BPF verifier log, but deviates from it in few places. More details are in commit message for patch #1. Example of output for all supported BTF kinds are in patch #2 as part of documentation. Some field names are quite verbose and I'd rather shorten them, if we don't feel like being very close to BPF verifier names is a necessity, but in this patch I left them exactly the same as in verifier log. Andrii Nakryiko (2): bpftool: add ability to dump BTF types bpftool/docs: add btf sub-command documentation .../bpf/bpftool/Documentation/bpftool-btf.rst | 205 +++++++ .../bpftool/Documentation/bpftool-cgroup.rst | 3 +- .../bpftool/Documentation/bpftool-feature.rst | 3 +- .../bpf/bpftool/Documentation/bpftool-map.rst | 3 +- .../bpf/bpftool/Documentation/bpftool-net.rst | 3 +- .../bpftool/Documentation/bpftool-perf.rst | 3 +- .../bpftool/Documentation/bpftool-prog.rst | 3 +- tools/bpf/bpftool/Documentation/bpftool.rst | 3 +- tools/bpf/bpftool/btf.c | 576 ++++++++++++++++++ tools/bpf/bpftool/main.c | 1 + tools/bpf/bpftool/main.h | 1 + 11 files changed, 797 insertions(+), 7 deletions(-) create mode 100644 tools/bpf/bpftool/Documentation/bpftool-btf.rst create mode 100644 tools/bpf/bpftool/btf.c -- 2.17.1