android内核上的objdump

android内核上的objdump,android,linux-kernel,executable,objdump,Android,Linux Kernel,Executable,Objdump,我已经将android linux内核从gzip头中拆分出来并解压缩了它。然而,当我试图从android ndk执行objdump来转储文件时,我得到了一个无法识别的文件格式错误 任何人都知道如何从二进制图像中获取符号表 在我的android设备上,我可以执行以下操作以获得符号表: cat/proc/kallsyms尝试使用 这不是Android独有的,它发生在大多数(所有?)Linux系统上。Linux内核(Android基于此)的可引导映像不是正确的ELF二进制文件: # file /boo

我已经将android linux内核从gzip头中拆分出来并解压缩了它。然而,当我试图从android ndk执行objdump来转储文件时,我得到了一个无法识别的文件格式错误

任何人都知道如何从二进制图像中获取符号表

在我的android设备上,我可以执行以下操作以获得符号表: cat/proc/kallsyms

尝试使用


这不是Android独有的,它发生在大多数(所有?)Linux系统上。Linux内核(Android基于此)的可引导映像不是正确的ELF二进制文件:

# file /boot/vmlinuz-2.6.38.7-desktop-1mnb2 
/boot/vmlinuz-2.6.38.7-desktop-1mnb2: Linux kernel x86 boot executable bzImage, version 2.6.38.7-desktop-1mnb2 (thomas@celeste.mandriva.com) #1 SMP Sun, RO-rootFS, root_dev 0x902, swap_dev 0x3, Normal VGA
# nm /boot/vmlinuz-2.6.38.7-desktop-1mnb2 
nm: /boot/vmlinuz-2.6.38.7-desktop-1mnb2: File format not recognized

可引导映像是通过在压缩容器中包装并添加一组引导和解压缩实用程序来创建的。如果需要内核映像进行调试。
vmlinux
文件正是您所需要的,但我不知道它是否存在于Android NDK中。

nm
objcopy
都使用
libbfd
from
binutils
作为后端。结果是一样的。。。
# file /boot/vmlinuz-2.6.38.7-desktop-1mnb2 
/boot/vmlinuz-2.6.38.7-desktop-1mnb2: Linux kernel x86 boot executable bzImage, version 2.6.38.7-desktop-1mnb2 (thomas@celeste.mandriva.com) #1 SMP Sun, RO-rootFS, root_dev 0x902, swap_dev 0x3, Normal VGA
# nm /boot/vmlinuz-2.6.38.7-desktop-1mnb2 
nm: /boot/vmlinuz-2.6.38.7-desktop-1mnb2: File format not recognized