树莓派3上的ftrace + addr2line

时间:2018-07-13 15:13:37

标签: linux kernel raspberry-pi3

我想从ftrace在rapberry pi 3上输出的函数地址获取内核源代码文件名和内核函数的行号。

我在树莓派3上尝试过addr2line -e /boot/kernel8.img [function address],但返回了addr2line: /boot/kernel8.img: File format not recognized

注意:

kernel8.img是我编译的自定义内核。我从https://github.com/raspberrypi/linux.git克隆内核源代码,检出到rpi-4.18.y,打开CONFIG_DEBUG_INFO,然后运行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4。此编译工作是在ubuntu x86_64 linux内核4.15.0-23-generic上执行的。 kernel8.img的类型如下。

$ file kernel8.img
kernel8.img: MS-DOS executable

谢谢

1 个答案:

答案 0 :(得分:0)

您需要针对addr2line文件(即未压缩/原始内核二进制文件)运行vmlinux/boot/kernel8.img最有可能是zImage(即压缩内核)。 编译后,您可以在内核源代码的根目录中找到vmlinux文件。