android 8.1 and kernel 4.4
从编译终端界面查找 CROSS_COMPILE=aarch64-linux-android- 交叉编译工具的版本
从android顶层/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin查找aarch64-linux-android-objdump
输入命令sudo ./aarch64-linux-android-objdump,切忌./ 一定要有,代表当前目录的aarch64-linux-android-objdump,否则出现command not found。
1.确保vmlinux中包含debug信息。主要由编译设置gcc -g
使成生的vmlinux中含有debug信息
3. sudo ./aarch64-linux-android-objdump -h vmlinux > vmlinux.txt
显示 linux 内核段信息,如段的开始虚拟地址,段的长度
4. sudo ./aarch64-linux-android-objdump -S -l -z vmlinux > vmlinux.txt
反汇编 vmlinux 到vmlinux.txt, vmlinux.txt 含有汇编和 c 源文件的混合代码,看起来很方
便。而且能一步步看linux怎么一步步运行的。
5. sudo ./aarch64-linux-android-objdump -S -l -z -j xxxx(section name) vmlinux > vmlinux.txt
反汇编 linux 内核段 xxxx 到文件 vmlinux.txt 中。
6. sudo ./aarch64-linux-android-objdump -x vmlinux > x.txt
vmliux中所有段的头信息,其中包口vmlinux的入口地址等
7. sudo ./aarch64-linux-android-objdump --debugging vmlinux > debugging.txt
很多有用的debug信息,如函数名,结构体定义等