[英]ftrace + addr2line on raspberry pi 3
我想從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
謝謝
您需要針對vmlinux
文件(即未壓縮/原始內核二進制文件)運行addr2line
。 /boot/kernel8.img
很可能是zImage
(即壓縮內核)。 編譯后,您可以在內核源代碼的根目錄中找到vmlinux
文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.