armsd 指令详解

----------------------------------------------------------------------------------------

我没能找到一篇类似的博文,就记录下这次过程,也算从0到1吧

-----------------------------------------------------------------------------------------



armsd是用来调试arm程序的命令。可是很多时候,不知道该怎么用。下面就来看看详解吧。


首先来查看一下armsd有多少可选的参数:

armsd:  help




亲爱的,你看到这么多命令了吗?

上一篇博文只用上了go和quit.

那么今天晚上就看看这些命令吧。


1.Registers

如何查看registers的用法呢: 

armsd: help registers

如下图所示Registers的用途为:展示当前模式下ARM寄存器R0~R15的内容并且破译PSR。如果给出了模式,就展示当前模式下的寄存器内容。




处理器一般有7种模式,分别是用户模式(user),特权模式(svc), 快速中断模式(fiq), 外部中断模式(irq),数据访问中止模式(abt),

未定义指令中止模式(und),系统模式(sys).


(1)registers user

用户模式下可以查看堆栈指针R13(SP)和子程序连接时备用pc用的R14(LR).


 (2)registers svc

特权模式下可以查看所有寄存器。{r0-r14}+pc (程序计数器)+cpsr (当前状态寄存器)+spsr(备份程序状态寄存器)


(3)registers fiq

快速中断模式可以查看备份寄存器{r8-r12}+r13+r14+spsr


(4)registers irq

外部中断模式(普通中断模式)查看 R13+R14+SPSR


这里并不能使用系统模式sys会报错。其他的看兴趣试试吧。




2.cwrite

用途:更新一个协处理器寄存器




3. Quit

用途: 从调试模式下退出


 

4. Watch

用途:设置一个监视点,或者没有参数展示的监视列表。<expr>是一个在任意执行过程后变量改变的变量名字或者是一个在任意执行过程

         后表达式确定的内存地址改变的一个内存地址。

 

举例说明,就在r1设置监视点(watchpoint,表明你告诉IDE你希望监视一块内存。当被监视的内存的内容发生变化时,watchpoint就被触发了,此时程序暂停运行,等待我们查看)


 

5.In

用途:后退一个堆栈级别重新存储当前内容,称为当前程序或者功能。

 


6.Lsym

用法:展示低级标识符(感觉可能翻译成标识符号更确切)。<sym>是一个用来描述标志符号的模式。 举例子来看LSYM将会列出最主要,最常用的的标识符。LSYM本身会列出所有标识符。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳悦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值