我正在对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的值是这些吗?