MDB 命令前面是表示起始地址的可选表达式或起始地址和重复计数时,将执行算术展开。也可以执行算术展开以计算 dcmd 的数值参数。算术表达式可以出现在用方括号括起来且前面是美元符号 ($[ expression ]) 的参数列表中,并将被替换为表达式的值。
表达式可以包含以下任一特殊字:
指定的整数值。整数值可以使用 0i 或 0I 作为前缀以指示二进制值,使用 0o 或 0O 作为前缀以指示八进制值,使用 0t 或 0T 作为前缀以指示十进制值,以及使用 0x 或 0X 作为前缀以指示十六进制值(缺省值)。
指定的十进制浮点值,已转换为其 IEEE 双精度浮点表示形式
通过将每个字符转换为等于其 ASCII 值的字节而计算的整数值。在字符常量中,最多可以指定八个字符。字符按相反顺序(从右到左)填入整数,从最低有效字节开始。
由 identifier 指定的变量值
由 identifier 指定的符号值
expression 的值
点值
用于执行 dcmd 的最新点值
按当前增量递增的点值
按当前增量递减的点值
增量是一个全局变量,它存储上一个格式设置 dcmd 读取的总字节。有关增量的更多信息,请参阅格式设置 dcmd的讨论。
一元运算符是右关联的,其优先级高于二元运算符。一元运算符如下:
逻辑否定
按位补码
整型否定
与目标虚拟地址空间中虚拟地址 expression 相对应的目标文件位置处指针大小量的值
与目标虚拟地址空间中虚拟地址 expression 相对应的目标文件位置处 char、short、int 或 long 大小量的值
与目标虚拟地址空间中虚拟地址 expression 相对应的目标文件位置处单字节、双字节、四字节或八字节量的值
目标虚拟地址空间中虚拟地址 expression 处指针大小量的值
目标虚拟地址空间中虚拟地址 expression 处 char、short、int 或 long 大小量的值
目标虚拟地址空间中虚拟地址 expression 处单字节、双字节、四字节或八字节量的值
二元运算符是左关联的,其优先级低于一元运算符。按最高到最低的优先顺序排列,二元运算符如下:
整数相乘
整数相除
将左侧值向上舍入为最接近的右侧值倍数
整数相加
整数相减
按位向左移位
按位向右移位
逻辑相等
逻辑不等
按位和
按位异或
按位或