objdump на ядре android


Я взял ядро Android linux, разделил его из заголовка gzip и распаковал его. Однако, когда я пытаюсь сделать objdump из android ndk, чтобы сбросить файл, я получаю файловый формат не распознанной ошибки.

Кто-нибудь знает, как получить таблицу символов из двоичного изображения.

На моем устройстве android я могу сделать следующее, Чтобы получить таблицу символов: cat / proc / kallsyms

2 2

2 ответа:

Это не уникально для 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 ядро ELF binary в сжатом контейнере и добавление набора загрузочных и декомпрессионных утилит. Если вам нужен образ ядра для отладки. файл vmlinux - это то, что вам нужно, хотя я не знаю, существует ли он в Android NDK.

Попробуйте использоватьnm .

$ nm path/to/someobj