【问题标题】:How to extract kernel symbols from uImage (arm)?如何从 uImage (arm) 中提取内核符号?
【发布时间】:2012-03-22 17:27:57
【问题描述】:

我想从 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

加载

【问题讨论】:

    标签: gdb kernel arm system-calls u-boot


    【解决方案1】:

    make vmlinux。我相信 GDB 可以读懂,但是我尝试了很久,而且内核版本很多。

    编辑:哦,我应该说,vmlinux 和 uImage 应该相同,但打包方式不同。如果不是这种情况,那么这将不起作用。

    【讨论】:

    • 我知道由于 gdbserver 出现了一个新问题,但内核符号已正确加载,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 2017-03-18
    相关资源
    最近更新 更多