Solaris モジューラデバッガ

演算機能の拡張

MDB コマンドの前に、開始アドレスを表すオプション式や、開始アドレスと繰り返し回数を表すオプション式がある場合は、演算機能が拡張されます。また、dcmd に使用する数値引数を計算する場合にも、演算機能が拡張されます。演算式は、ドル記号の後に角括弧で囲んだ引数リスト ($[ expression ]) で表され、その式の値に置き換えられます。

式には、次の特殊ワードのどれかを使用できます。

integer

特定の整数値。デフォルトでは、整数値は、接頭辞として 0i または 0I を付けると 2 進数値、0o または 0O を付けると 8 進数値、0t または 0T を付けると 10 進数値、0x または 0X を付けると 16 進数値を表します。

0[tT][0-9]+.[0-9]+

指定された 10 進数の浮動小数点値。IEEE 倍精度浮動小数点表示に変換されます。

'cccccccc'

各文字を ASCII 値に等しいバイトに変換することによって計算された整数値。最大 8 文字までを文字定数に指定できます。文字列は、最下位のバイトから始まって、右から左へと逆方向に整数の中へ格納されます。

<identifier

識別子 (identifier) によって指定される変数値

identifier

識別子 (identifier) によって指定されるシンボル値

(expression)

式 (expression) の値

.

ドット値

&

dcmd を実行するために使用される最新のドット値

+

現在のインクリメントによって増分されるドット値

^

現在のインクリメントによって減分されるドット値

インクリメントとは、最後にフォーマットされた dcmd によって読み込まれる合計バイトを格納する大域変数のことです。インクリメントの詳細については、「dcmd のフォーマット」を参照してください。

単項演算子

単項演算子は右結合で、2 項演算子よりも高い優先度を持っています。以下で、単項演算子について説明します。

#expression

論理否定

expression

ビット単位の補数

-expression

整数否定

%expression

ターゲットの仮想アドレス空間内の仮想アドレス式に対応するオブジェクトファイル位置でのポインタサイズの数量値

%/[csil]/expression

ターゲットの仮想アドレス空間内の仮想アドレス式に対応するオブジェクトファイル位置での char サイズ、short サイズ、int サイズ、または long サイズの数量値

%/[1248]/expression

ターゲットの仮想アドレス空間内の仮想アドレス式に対応するオブジェクトファイル位置での 1 バイト、2 バイト、4 バイト、または 8 バイトの数量値

*expression

ターゲットの仮想アドレス空間内の仮想アドレス式でのポインタサイズの数量値

*/[csil]/expression

ターゲットの仮想アドレス空間内の仮想アドレス式での char サイズ、short サイズ、int サイズ、または long サイズの数量値

*/[1248]/expression

ターゲットの仮想アドレス空間内の仮想アドレス式での 1 バイト、2 バイト、4 バイト、または 8 バイトの数量値

2 項演算子

2 項演算子は左結合で、単項演算子よりも優先度は低くなります。以下に 2 項演算子を、優先度の高いものから順に示します。

*

整数の乗算

%

整数の除算

#

左辺を右辺の最小の倍数に切り上げる

+

整数の加算

-

整数の減算

<<

ビット単位で左へシフト

>>

ビット単位で右へシフト

==

等しい

!=

異なる

&

ビット単位の論理積

^

ビット単位の排他的論理和

|

ビット単位の論理和