VxWorks的两个调试命令

1.反汇编命令l:

用法:l Addr,Num
功能:从Addr地址开始显示Num条反汇编指令,如果不加Num则按照默认的方式显示10条反汇编指令.
举例:
(1)不加Num按照默认的方式显示10条反汇编指令:
VxWorks的两个调试命令_第1张图片

(2)加参数后显示指定行数的反汇编指令:

2.内存显示命令d:

用法:d Addr,UnitNum,UnitBytes
功能:从地址Addr开始显示UnitNum组的内存数据,每行显示16Bytes;每组包含UnitBytes字节,一行有16/UnitBytes
     组数据;
说明:UnitBytes的可选值有:1,2,4,8;其它数值的显示形式和1相同.其中以1为参数可以从任意地址开始显示数据,
     而已其它参数则只能从偶地址开始显示.
举例:地址0x1a900a50附近的内存布局如下图所示,下面使用不同的显示方式把这段内存的内容显示出来:

VxWorks的两个调试命令_第2张图片

(1)从地址0x1a900a55开始显示32组数据,每组1字节:
说明:这种说明:这种显示方式是严格按照字节地址从低到高显示,对于查看那些单字节变量比较方便.比如现在地址0x1a900a58处是一个char类型的变量,那么我们就很容易知道它的值是0x50.但是如果地址0x1a900a58处是一个双字节类型的变量,我们就不能安顺序读了,如果认为这个双字节变量的值是0x5097那就错了,因为双字节数据在内存中的存储方式是:高字节在高地址,低字节在低地址;所以这个双字节类型的变量的值应该是0x9750.对于双字节变量采用下面的显示方式查看会更直观一些.

(2)从地址0x1a900a55开始按照默认方式显示数据,每组数据的默认值是2字节:
VxWorks的两个调试命令_第3张图片说明:这种显示方式是组之间地址从低到高,组内高地址字节显示在前,低地址字节显示在后,对于查看那些双字节变量比较方便,直接读出一个组的数据就是一个16位的数值.比如现在地址0x1a900a58处有一个双字节的变量,那么我们可以直接读出它的值是0x9750.但是如果地址0x1a900a58处是一个四字节类型的变量,我们就不能安顺序读了,如果认为这个四字节变量的值是0x975000ee那就错了,因为四字节数据在内存中的存储方式是:高位的双字节在高地址,低位的双字节在低地址;高位的双字节和低位的双字节存储方式和单独的双字数据存储方式相同,即:高字节在高地址,低字节在低地址;所以这个四字节类型的变量的值应该是0x00ee9750.对于四字节变量采用下面的显示方式查看会更直观一些.

(3)从地址0x1a900a55开始显示32组数据,每组4字节:
VxWorks的两个调试命令_第4张图片

说明:这种显示方式是组之间地址从低到高,组内高地址双字显示在先,低地址双字显示在后;对于高地址和低地址的双字都是高地址字节显示在前,低地址字节显示在后的;这样对于一个四字节的数据按照显示的方式读出即可.比如现在地址0x1a900a58处又一个四字节的变量,那么我们可以直接读出它的值是0x00ee9750.

注:以上两个命令显示的地址和数据都是16进制格式的.

 

你可能感兴趣的:(嵌入式技术)