我使用了android linux内核,将其从gzip头文件中拆分并解压缩。但是,当我尝试从android ndk执行objdump来转储文件时,我得到了一个file format not recognized错误。
有人知道如何从二进制图像中获取符号表吗?
在我的android设备上,我可以执行以下操作来获取符号表: cat /proc/kallsyms
发布于 2011-12-21 01:37:38
这并不是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 kernel ELF binary包装在压缩容器中并添加一组引导和解压缩实用程序来创建的。如果您需要内核映像来进行调试。vmlinux文件正是您所需要的--我不知道它是否存在于Android NDK中,也不知道它在Android NDK中的位置。
发布于 2011-12-21 01:34:29
尝试使用nm。
$ nm path/to/someobjhttps://stackoverflow.com/questions/8579370
复制相似问题