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. Patch #3 adds support for btf command in bash-completion/bpftool script. 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. v1->v2: - fix unnecessary trailing whitespaces in bpftool-btf.rst - add btf in main.c for a list of possible OBJECTs - handle unknown keyword under `bpftool btf dump` Andrii Nakryiko (3): bpftool: add ability to dump BTF types bpftool/docs: add btf sub-command documentation bpftool: add bash completions for btf command .../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/bash-completion/bpftool | 46 ++ tools/bpf/bpftool/btf.c | 580 ++++++++++++++++++ tools/bpf/bpftool/main.c | 3 +- tools/bpf/bpftool/main.h | 1 + 12 files changed, 848 insertions(+), 8 deletions(-) create mode 100644 tools/bpf/bpftool/Documentation/bpftool-btf.rst create mode 100644 tools/bpf/bpftool/btf.c -- 2.17.1