0

我正在对一个 android 应用程序进行分析,并希望在每个 SIGPROF 的信号处理程序中获取回溯,但是 ARM 的 reigster FP 很奇怪,它不是存储帧指针并且可以进行回溯的原始目的。-fno-omit-frame-pointer gcc 标志已设置。FP的值是这样的:

I/PROFILING(29341): 0 : pc=0x5c6263a8, sp=0xbeb69e90, fp=0x4, lr=0x5c626540,
I/PROFILING(29341): 1 : pc=0x5c846288, sp=0xbeb6a018, fp=0x3, lr=0x5c8589e8,
I/PROFILING(29341): 2 : pc=0x5edfef90, sp=0x609ff32c, fp=0x609ff33c, lr=0x5dc38b9c,
I/PROFILING(29341): 3 : pc=0x5da09030, sp=0x609ff340, fp=0x609ff3f4, lr=0x5da09064, 
I/PROFILING(29341): 4 : pc=0x400adb64, sp=0xbeb69d40, fp=0x4, lr=0x400c8d79,
I/PROFILING(29341): 5 : pc=0x5c6263a0, sp=0xbeb69e90, fp=0x4, lr=0x5c626540,

第 3 行和第 4 行的 FP 值似乎是正确的,但其他人很奇怪,有人知道为什么 FP 的值是这些吗?

4

0 回答 0