Как извлечь символы ядра из uImage (arm)?

Я хочу извлечь символы ядра из образа u-boot

Конечная цель — отладка системных вызовов с помощью gdb.


Ядро скомпилировано с CONFIG_DEBUG_INFO=y, а gcc использует параметр -g (я проверил)

После make uImage у меня:

# file arch/arm/boot/*
arch/arm/boot/bootp:           directory
arch/arm/boot/compressed:      directory
arch/arm/boot/Image:           data
arch/arm/boot/install.sh:      POSIX shell script text executable
arch/arm/boot/Makefile:        ASCII English text
arch/arm/boot/uImage:          u-boot legacy uImage, Linux-3.0.6, Linux/ARM, OS Kernel Image (Not compressed), 3044476 bytes, Thu Mar 22 18:13:40 2012, Load Address: 0x00008000, Entry Point: 0x00008000, Header CRC: 0xF689B805, Data CRC: 0x6BFE76DF
arch/arm/boot/zImage:          data

gdb не может загрузить uImage напрямую


Я попробовал этот скрипт http://forum.xda-developers.com/showthread.php?t=901152.

# file arch/arm/boot/zImage_unpacked/*
arch/arm/boot/zImage_unpacked/decompression_code:     data
arch/arm/boot/zImage_unpacked/initramfs.cpio+part3:   data
arch/arm/boot/zImage_unpacked/kernel.img:             data
arch/arm/boot/zImage_unpacked/padding_piggy:          data
arch/arm/boot/zImage_unpacked/piggy:                  data
arch/arm/boot/zImage_unpacked/piggy.gz:               gzip compressed data, from Unix, max compression
arch/arm/boot/zImage_unpacked/piggy.gz+piggy_trailer: gzip compressed data, from Unix, max compression
arch/arm/boot/zImage_unpacked/piggy_trailer:          data
arch/arm/boot/zImage_unpacked/sizes:                  ASCII text

kernel.img не загружается с помощью gdb


person moul    schedule 22.03.2012    source источник


Ответы (1)


Сделайте make vmlinux. Я считаю, что GDB может это прочитать, но с тех пор, как я пробовал, прошло много времени и много версий ядра.

РЕДАКТИРОВАТЬ: О, я должен сказать, что и vmlinux, и uImage должны быть одинаковыми, но упакованы по-разному. Если это не так, то это не сработает.

person ams    schedule 27.03.2012
comment
Я знаю, что у меня новая проблема из-за gdbserver, но символы ядра загружаются правильно, спасибо. - person moul; 28.03.2012