我需要找到运行在基于ARMv7 ISA的Raspberyy pi3上的程序访问的每个内存位置的地址。
本质上,我想捕获程序的所有负载和存储以构建详细的内存跟踪。最终目的是研究特定的内存访问模式如何影响访问延迟,因此详细的跟踪非常重要。
我尝试通过gdb进行跟踪,如下所示:
gdb) while 1
> x/i $pc
>stepi
>end
但是问题是它返回了类似的踪迹
ldr r3,[r7,#4]!
我需要的是“ ldr r3,内存地址”,在这里我不需要重新计算寄存器r7中存储的值并加4,依此类推。
程序很大,跟踪花费了数小时。有没有办法直接获取地址?