On Fri, Jun 16, 2023 at 10:18 AM Alan Maguire <alan.maguire@xxxxxxxxxx> wrote: > > Provide a way to dump BTF metadata info via bpftool; this > consists of BTF size, header fields and kind layout info > (if available); for example > > $ bpftool btf dump file vmlinux format meta > size 4966513 > magic 0xeb9f > version 1 > flags 0x0 > hdr_len 24 > type_len 2929900 > type_off 0 > str_len 2036589 > str_off 2929900 > > ...or for vmlinux with kind layout, crc: > > $ bpftool btf dump file vmlinux format meta > size 5034496 > magic 0xeb9f > version 1 > flags 0x1 > hdr_len 40 > type_len 2973628 > type_off 0 > str_len 2060745 > str_off 2973628 > kind_layout_len 80 > kind_layout_off 5034376 > crc 0xb6a5171f > base_crc 0x0 > kind 0 flags 0x0 info_sz 0 elem_sz 0 > kind 1 flags 0x0 info_sz 4 elem_sz 0 > kind 2 flags 0x0 info_sz 0 elem_sz 0 > kind 3 flags 0x0 info_sz 12 elem_sz 0 > kind 4 flags 0x0 info_sz 0 elem_sz 12 well, bpftool will know symbolic names for most of these, so why not emit them? I think it's fine to emit both, something like kind INT (1) flags .... ... and for unknown: kind <unknown> (123) flags .... WDYT? > ... > > JSON output is also supported: > > $ bpftool -j btf dump file vmlinux format meta > {"size":4904369,{"header":"magic":60319,"version":1,"flags":0,"hdr_len":24,"type_len":2893508,"type_off":0,"str_len":2010837,"str_off":2893508}} > > Signed-off-by: Alan Maguire <alan.maguire@xxxxxxxxxx> > --- > tools/bpf/bpftool/bash-completion/bpftool | 2 +- > tools/bpf/bpftool/btf.c | 93 ++++++++++++++++++++++- > 2 files changed, 92 insertions(+), 3 deletions(-) > [...]