[英]log CPU register changes in ARM Linux
我想知道如何监视ARM linux中应用程序的多个寄存器更改。 我知道我必须调试它,但是如何在ARM linux中自动记录所有寄存器更改?
我知道使用gdb中的watch命令可以做到这一点,但是有可能制作一个小的C代码,使其仅运行调试器之类的应用程序,并记录其寄存器更改吗?
简而言之,我想监视ARM linux中的CPU寄存器更改。 因此,如果我运行一个应用程序,我想监视其所有寄存器更改。
假设我要监视R14。 当应用程序运行时,我想记录所有更改和R14寄存器中的值。
一种方法是使用gdb单步进入程序,记录每一步之间的info all-registers
的输出。 自动化这应该不是IMO的大问题。
但是,在运行时你的程序将是更长的时间。
在GDB中,您可以打印cpu寄存器的值,
info registers
显示所有寄存器;
info registers <reg_name>
仅显示寄存器<reg_name>
。
也,
info all-registers
通过它可以获取您感兴趣的寄存器名称-对于查找平台特定的寄存器(例如在ARM上)非常有用
PS如果您正在寻找汇编代码以读取cpu reg。 那么此线程可能会帮助您http://www.keil.com/forum/19829/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.