各パネル/ダイアログへの入力規約を次に示します。
入力を許可している文字セットは次のとおりです。
|
|
ASCII
|
半角のアルファベット(英字),半角の数字,および半角の記号
|
Shift-JIS
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字,および半角のカタカナ
|
EUC-JP
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字,および半角のカタカナ
|
UTF-8
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ
|
UTF-16 Big-Endian
(Unicode)
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ
|
UTF-16 Little-Endian
(Unicode)
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ
|
UTF-32 Big-Endian
(Unicode)
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ
|
UTF-32 Little-Endian
(Unicode)
|
全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ
|
入力を許可しているエスケープ・シーケンスは次のとおりです。
|
|
|
\0
|
0x00
|
null文字
|
\a
|
0x07
|
アラート
|
\b
|
0x08
|
バックスペース
|
\t
|
0x09
|
水平タブ
|
\n
|
0x0A
|
改行
|
\v
|
0x0B
|
垂直タブ
|
\f
|
0x0C
|
フォーム・フィード
|
\r
|
0x0D
|
キャリッジ・リターン
|
\"
|
0x22
|
ダブルクォーテーション
|
\'
|
0x27
|
シングルクォーテーション
|
\?
|
0x3F
|
疑問符(?と入力された場合も疑問符として扱います)
|
\\
|
0x5C
|
バックスラッシュ
|
数値を入力する際に許可している進数は次のとおりです。
|
|
2進数
|
0bで始まり,0~1の数値が続く数値
|
8進数
|
0で始まり,0~7の数字が続く数値
|
10進数
|
0以外で始まり,0~9の数字が続く数値
|
16進数
|
0xで始まり,0~9の数字,およびa~fの英字が続く数値
(英字の大文字/小文字については,不問)
ただし,
マークが表示されている入力エリアでは,0xの接頭辞は必要ありません。
|
式とは,定数,レジスタ名,I/Oレジスタ名,シンボル,およびこれらを演算子で結合したものを示します。
式には,アドレス式とウォッチ式があります。シンボルのアドレスを必要とする式をアドレス式,シンボルの値を必要とする式をウォッチ式と呼びます。
アドレス式では,シンボルのアドレスを使用して演算します。CPUレジスタ名が記述された場合のみ,値を使用して演算します。
アドレス式の基本入力形式は次のとおりです。
|
|
C言語変数名注1
|
C言語の変数のアドレス
|
式[式]注2
|
配列のアドレス
|
式.メンバ名
|
構造体/共用体のメンバのアドレス
|
式->メンバ名
|
ポインタの指し示す構造体/共用体のメンバのアドレス
|
CPUレジスタ名
|
CPUレジスタの値
|
I/Oレジスタ名
|
I/Oレジスタのアドレス
|
ラベル名注3,EQUシンボル名注3,[即値]
|
ラベルのアドレス,EQUシンボルの値,即値アドレス
|
整定数
|
アドレス
|
注 1. | C言語変数の値がレジスタに割り付いている場合は,エラーになります。 |
注 2. | インデックスとして入力された式は,ウォッチ式として解析します。 |
注 3. | ラベル名またはEQUシンボル名に“$”が含まれている場合,名前を“{}”で囲んでください(例:{$Label})。
“I”は虚数のキーワードとなるため,CPUレジスタの“I”を指定する場合は,“:REG”を付加してください(例:I:REG)。 |
また,「表 2.35 アドレス式の基本入力形式」から,次の演算子を用いたアドレス式を構成することができます。
|
|
(式)
|
演算順序の指定
|
-式
|
符号反転
|
!式
|
論理否定
|
~式
|
ビット反転
|
式*式注
|
乗算
|
式/式注
|
除算
|
式%式注
|
剰余算
|
式+式注
|
加算
|
式-式注
|
減算
|
式&式注
|
ビットごとの論理積
|
式^式注
|
ビットごとの排他的論理和
|
式|式注
|
ビットごとの論理和
|
注 | 変数,および関数は,変数/関数/整定数以外と演算子で結合することはできません(例:C言語変数名+ I/Oレジスタ名)。 |
ウォッチ式ではシンボルの値を使用して演算します。値が存在しない場合のみ,シンボルのアドレスを使用して演算します(例:main( ) + 1)。
ウォッチ式の基本入力形式は次のとおりです。
|
|
C言語変数名
|
C言語の変数の値
|
式[式]
|
配列の要素値
|
式.メンバ名
|
構造体/共用体のメンバ値
|
式->メンバ名
|
ポインタの指し示す構造体/共用体のメンバ値
|
*式
|
ポインタの変数の値
|
&式
|
配置アドレス
|
CPUレジスタ名
|
CPUレジスタの値
|
I/Oレジスタ名
|
I/Oレジスタの値
|
ラベル名注,EQUシンボル名注,[即値]
|
ラベルの値,EQUシンボルの値,即値アドレスの値
|
整定数
|
整数の定数値
|
浮動定数
|
浮動小数点の定数値
|
文字定数
|
文字定数値
|
注 | ラベル名またはEQUシンボル名に“$”が含まれている場合,名前を“{}”で囲んでください(例:{$Label})。
虚数の値には,大文字の“I”を掛けてください(例:1.0 + 2.0*I)。なお“I” は虚数のキーワードとなるため,CPUレジスタの“I”を指定する場合は,“:REG”を付加してください(例:I:REG)。 |
また,「表 2.37 ウォッチ式の基本入力形式」から,次の演算子を用いたウォッチ式を構成することができます。次表の演算子は,C言語仕様に従って式を解析します。
|
|
(式)
|
演算順序の指定
|
!式
|
論理否定
|
~式
|
ビット反転
|
式*式注
|
乗算
|
式/式注
|
除算
|
式%式注
|
剰余算
|
式+式注
|
加算
|
式-式注
|
減算
|
式&式注
|
ビットごとの論理積
|
式^式注
|
ビットごとの排他的論理和
|
式|式注
|
ビットごとの論理和
|
注 | 変数,および関数は,変数/関数/整定数以外と演算子で結合することはできません(例:C言語変数名+ I/Oレジスタ名)。 |
注意 1. | 下記のようなchar型の一次元配列がレジスタやメモリの複数個所に割り付いていた場合は,ウォッチ パネル,およびローカル変数 パネルに配列“array”を登録しても値のカラムに文字列を表示できません。
char array[5] = "ABCD"; |
注意 2. | ローカル変数 パネルの[スコープ]にて“カレント”以外を選択中は,レジスタに割り付いた変数の値は正しく表示できません。また,その変数の値を編集することもできません。 |
注意 3. | 以下の条件をすべて満たす変数を定義した場合,ウォッチ パネル,ローカル変数 パネルでは,対象のメンバ変数の割り付き位置文字列が変数全体の割り付き位置文字列で表示されます。 |
【条件】
<1> | 定義した変数が複数のアドレスやレジスタに割り付いている。
(アドレスカラムに2つ以上のアドレスやレジスタ名が表示される場合) |
<2> | 変数に以下の型のメンバが定義されている。
構造体,クラス,配列,共用体のいずれか |
【例】
struct Mem {
long m_base;
};
struct Sample {
long m_a;
struct Mem m_b; <-条件<2>に該当
};
main () {
struct Sample obj;
}
|
表示結果:
"obj" - { R1:REG, R2:REG } (struct Sample)
L m_a 0x00000000 { R1:REG } (long)
L m_b - { R1:REG, R2:REG } (struct Base)
L m_base 0x00000000 { R2:REG } (long)
|
注意 4. | ウォッチ パネルで0x10000を超えるサイズの変数は値,型,アドレスが「?」表示になります。 |