记录 CPU ARM 中的寄存器更改 Linux
log CPU register changes in ARM Linux
我想知道如何在 ARM linux 中监视应用程序的多个寄存器更改。我知道我必须调试它,但我如何自动记录 ARM 中的所有寄存器更改 linux?
我知道使用 gdb 中的 watch 命令我可以做到这一点,但是是否可以制作一个小的 c 代码,它只 运行 一个像调试器这样的应用程序,并记录它的寄存器变化?
简单的说,我想监控CPU ARMlinux寄存器的变化。因此,如果我 运行 一个应用程序,我想监视它的所有寄存器更改。
假设我想监控 R14。当应用程序 运行ning.
时,我想记录 R14 寄存器中的所有更改和值
在 GDB 中,您可以打印 cpu 个寄存器的值,
info registers
显示所有寄存器;
info registers <reg_name>
仅显示寄存器 <reg_name>
。
此外,
info all-registers
您可以通过它获得您感兴趣的寄存器名称——对于查找特定于平台的寄存器(如在 ARM 上)非常有用
P.S。
如果您正在寻找汇编代码来阅读 cpu reg。那么这个帖子可能会对你有所帮助 http://www.keil.com/forum/19829/
一种方法是使用 gdb 单步执行您的程序,记录每个步骤之间 info all-registers
的输出。在我看来,自动化这应该不是一个大问题。
但是,您的程序 运行 时间会 长得多。
我想知道如何在 ARM linux 中监视应用程序的多个寄存器更改。我知道我必须调试它,但我如何自动记录 ARM 中的所有寄存器更改 linux?
我知道使用 gdb 中的 watch 命令我可以做到这一点,但是是否可以制作一个小的 c 代码,它只 运行 一个像调试器这样的应用程序,并记录它的寄存器变化?
简单的说,我想监控CPU ARMlinux寄存器的变化。因此,如果我 运行 一个应用程序,我想监视它的所有寄存器更改。
假设我想监控 R14。当应用程序 运行ning.
时,我想记录 R14 寄存器中的所有更改和值在 GDB 中,您可以打印 cpu 个寄存器的值,
info registers
显示所有寄存器;
info registers <reg_name>
仅显示寄存器 <reg_name>
。
此外,
info all-registers
您可以通过它获得您感兴趣的寄存器名称——对于查找特定于平台的寄存器(如在 ARM 上)非常有用
P.S。 如果您正在寻找汇编代码来阅读 cpu reg。那么这个帖子可能会对你有所帮助 http://www.keil.com/forum/19829/
一种方法是使用 gdb 单步执行您的程序,记录每个步骤之间 info all-registers
的输出。在我看来,自动化这应该不是一个大问题。
但是,您的程序 运行 时间会 长得多。