checkstack.pl 脚本在 Android 上不起作用。
我使用Android P-OS。 内核版本是 msm-4.14
我执行了下面的命令 checkstack.pl 来检查内核堆栈大小。
./aarch64-linux-android-objdump -d vmlinux | ./checkstack.pl aarch64
但是只有一行结果。 0xffffff80080a9ec0 sha256_block_data_order [vmlinux]:128
如果我反映下面的补丁,我将看不到任何结果。 https://www.fclose.com/linux-kernels/778429/checkstack-pl-fix-for-aarch64-linux-4-9-150/
**)
"./aarch64-linux-android-objdump -d vmlinux" command works correctly.
vmlinux: file format elf64-littleaarch64
Disassembly of section .head.text:
ffffff8008080000 <_text>:
ffffff8008080000: 91005a4d add x13, x18, #0x16
ffffff8008080004: 145cbfff b ffffff80097b0000 <__init_begin>
.....
ffffff8008082904 <el0_irq_invalid>:
ffffff8008082904: a90007e0 stp x0, x1, [sp]
ffffff8008082908: a9010fe2 stp x2, x3, [sp,#16]
ffffff800808290c: a90217e4 stp x4, x5, [sp,#32]
ffffff8008082910: a9031fe6 stp x6, x7, [sp,#48]
如何让 checkstack.pl 在 Android 上运行?
尝试使用arm交叉编译器中的objdump,例如ArmDeveloper中的“aarch64-none-linux-gnu-objdump”:https://developer.arm.com/downloads/-/gnu-a
它可以找到所有可能的android内核堆栈大小。