Solaris 模块调试器指南

语法

MDB 语言遵循与 adb(1) 语言相同的语法,以便为传统的宏和脚本文件提供兼容性。新增的 MDB dcmd 使用扩展形式 ::name,以便将它们与以 :$ 为前缀的传统命令区分开。也可以在 dcmd 名称的右侧计算表达式,方法是将它们括在前面是美元符号的方括号 ($[ ]) 中。与 adb(1) 类似,以叹号 (!) 开头的输入行指示该命令行应该由用户的 shell 执行。在 MDB 中,调试器命令也可能以叹号为后缀,以指示应该将其输出传输到叹号后面的 shell 命令。

adb(1) 中,二元运算符是左关联的,其优先级低于一元运算符。在输入行上,二元运算符是严格按照从左向右的顺序计算的。在 MDB 中,二元运算符是左关联的,其优先级低于一元运算符,但是二元运算符按照二元运算符中的表所示的优先顺序运算。运算符符合 ANSI C 中的优先顺序。可能需要更新不显式括起二义性表达式的传统 adb(1) 宏文件以用于 MDB。例如,在 adb 中,以下命令的计算结果是整数值 9:


$ echo "4-1*3=X" | adb

        9

在 MDB 中,与在 ANSI C 中一样,运算符 "*" 的优先级高于 "-",因此结果是整数值 1:


$ echo "4-1*3=X" | mdb

        1