Re: BTF without CONFIG_DEBUG_INFO_BTF=y

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux