Em Thu, Oct 01, 2020 at 12:33:18PM +0200, Toke Høiland-Jørgensen escreveu: > Kevin Sheldrake <Kevin.Sheldrake@xxxxxxxxxxxxx> writes: > > > Hello > > > > I've seen mention a few times that BTF information can be made > > available from a kernel that wasn't configured with > > CONFIG_DEBUG_INFO_BTF. Please can someone tell me if this is true and, > > if so, how I could go about accessing and using it in kernels 4.15 to > > 5.8? > > > > I have built the dwarves package from the github latest and run pahole > > with '-J' against my kernel image to no avail - it actually seg > > faults: > > > > ~/dwarves/build $ sudo ./pahole /boot/vmlinuz-5.3.0-1022-azure > > btf_elf__new: cannot get elf header. > > ctf__new: cannot get elf header. > > ~/dwarves/build $ sudo ./pahole -J /boot/vmlinuz-5.3.0-1022-azure > > btf_elf__new: cannot get elf header. > > ctf__new: cannot get elf header. > > Segmentation fault > > ~/dwarves/build $ sudo ./pahole --version > > v1.17 > > > > Judging by the output, I'm guessing that my kernel image isn't the > > right kind of file. Can someone point me in the right direction? > > vmlinuz is a compressed image. There's a script in the kernel source > tree (scripts/extract-vmlinux), however the kernel image in /boot/ > probably also has debug information stripped from it, so that likely > won't help you. You'll need to get hold of a kernel image with debug > information still intact somehow... > > (Either way, pahole shouldn't be segfaulting, so hopefully someone can > take a look at that). Reproduced: [acme@five pahole]$ cp /boot/vmlinuz-5.9.0-rc6+ . [acme@five pahole]$ pahole -J vmlinuz-5.9.0-rc6+ btf_elf__new: cannot get elf header. ctf__new: cannot get elf header. tag__check_id_drift: subroutine_type id drift, core_id: 1145, btf_type_id: 1143, type_id_off: 0 pahole: type 'vmlinuz-5.9.0-rc6+' not found libbpf: Unsupported BTF_KIND:0 btf_elf__encode: btf__new failed! free(): double free detected in tcache 2 Aborted (core dumped) [acme@five pahole]$ Working on a fix. Thanks for the report! - Arnaldo