1.4.2 機能の詳細
- 〈この項の構成〉
(1) データ値の表示
- AIXの場合
-
データ値をデータ属性表示するときは,テストデバッガが文字コードをUnicode(UTF-8またはUTF-16)からシフトJISに変換して,変換後の値を表示します。
- Linuxの場合
-
用途がNATIONALの項目のデータ値をデータ属性表示するときは,テストデバッガが文字コードをUTF-16からUTF-8に変換して,変換後の値を表示します。
また,データ値を16進数で表示するときは,文字コードの変換は行わないで,Unicode(UTF-8またはUTF-16)の16進数で表示します。UTF-16の16進数での表示については,「1.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。
データ値の表示は,DISPLAY DATAコマンド,SET TRACEコマンド,DISPLAY OBJECTコマンド,DISPLAY FACTORYコマンドで,データの値をデータ属性または16進数で表示できます。
DISPLAY DATAコマンド,SET TRACEコマンド,DISPLAY OBJECTコマンド,DISPLAY FACTORYコマンドの詳細については,「5.4 TDコマンドの詳細」の「5.4.9 SET TRACE/RESET TRACE(トレース表示の開始と中止)」,「5.4.13 DISPLAY DATA(データの値表示)」,「5.4.14 DISPLAY OBJECT/DISPLAY FACTORY(オブジェクトのデータ値の表示)」を参照してください。
データ値を表示するときの規則を次に示します。
-
AIXの場合,データ値をデータ属性表示するときに,用途がDISPLAYの項目および用途がNATIONALの項目を変換して表示します。
-
用途がDISPLAYの項目の場合は,UTF-8からシフトJISに変換して表示します。
-
用途がNATIONALの項目の場合は,UTF-16からシフトJISに変換して表示します。
各データ項目について変換するかどうかを表1-7に示します。
-
-
Linuxの場合,データ値をデータ属性表示するときに,用途がNATIONALの項目を,UTF-16からUTF-8に変換して表示します。
-
表示機能を使用してデータ値を16進数で表示する場合は,変換しないで,Unicode(UTF-8またはUTF-16)の16進数で表示します。データ属性表示で表示エラーが発生した場合も変換しないで,Unicode (UTF-8またはUTF-16)の16進数で表示します。
-
AIXの場合,Unicode(UTF-8またはUTF-16)からシフトJISへ変換できないコードがある場合は,そのコードを置き換えて表示します。
-
用途がDISPLAYの項目の場合は,半角ピリオドに置き換えて表示します。
-
用途がNATIONALの項目の場合は,全角''(げた記号)(シフトJIS:X'81AC')に置き換えて表示します。
-
-
Linuxの場合,Unicode(UTF-8またはUTF-16)からシフトJISに変換できないコードがある場合は,そのコードを置き換えて表示します。
-
用途がDISPLAYの項目の場合,半角ピリオドに置き換えて表示します。
-
用途がNATIONALの項目の場合,全角''(げた記号)(UTF-8:X'E38093')に置き換えて表示します。
-
-
Linuxの場合,データ値をデータ属性表示するときに,用途がNATIONALの項目でUTF-16からUTF-8に変換すると1バイトコードになる文字は,表示できる文字であれば,そのまま1バイトコードで表示します。 UTF-8では表示できない文字の場合は,UTF-8でのバイト数分を半角ピリオドで表示します。
-
Unicode(UTF-8またはUTF-16)で多バイトとして扱われる文字の途中で終了している場合は,そのバイトを半角ピリオドに置き換えて表示します。
-
コード変換中にエラーが発生したときは,データ属性表示で表示エラーになった場合と同様に変換しないで,Unicode(UTF-8またはUTF-16)の16進数で表示します。
(2) データ値の代入
- AIXの場合
-
データ名に文字定数(英数字定数,日本語文字定数,ALL定数)を代入する場合は,テストデバッガが,文字定数の文字コードをシフトJISからUnicode(UTF-8またはUTF-16)に変換して,データに代入するので,ユーザは文字定数をシフトJISで指定できます。
- Linuxの場合
-
用途がNATIONALのデータ名に文字定数(日本語文字定数,ALL定数)を代入する場合は,テストデバッガが,文字定数の文字コードをUTF-8からUTF-16に変換して,データ名に代入するので,ユーザは文字定数をUTF-8で指定できます。
ただし,TDコマンド格納ファイルを使用して,データ名に文字定数(英数字定数,日本語文字定数,ALL定数)を代入する場合は,テストデバッガが,文字定数の文字コードをシフトJISからUnicode(UTF-8またはUTF-16)に変換して,データ名に代入します。
また,16進英数字定数または16進日本語文字定数を使用すれば,文字コードを直接指定した代入ができます。16進日本語文字定数での代入については,「1.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。
データ値の代入は,ASSIGN DATAコマンドで,データに値を代入して,値を変更できます。
ASSIGN DATAコマンドの詳細については,「5.4 TDコマンドの詳細」の「5.4.15 ASSIGN DATA(データの値代入)」を参照してください。
データ値を代入するときの規則を次に示します。
-
AIXの場合,代入する値に文字定数を指定した場合は次のように変換して代入します。
-
英数字定数の場合は,シフトJISからUTF-8に変換して代入します。
-
日本語文字定数の場合は,シフトJISからUTF-16に変換して代入します。
代入は変換後のサイズで行われるため,変換によってデータのサイズが受け取り側のデータ項目のサイズを超えた場合,超えた部分は代入されません。
-
-
Linuxの場合,代入する値に日本語文字定数を指定した場合は,UTF-8からUTF-16に変換して代入します。ただし,TDコマンド格納ファイルを使用して,代入する値に文字定数を指定した場合は,次のように変換して代入します。
-
英数字定数の場合は,シフトJISからUTF-8に変換して代入します。
-
日本語文字定数の場合は,シフトJISからUTF-16に変換して代入します。
代入は変換後のサイズで行われるため,変換によってデータのサイズが受け取り側のデータ項目のサイズを超えた場合,超えた部分は代入されません。
-
-
16進英数字定数または16進日本語文字定数を指定した場合は,文字コードの変換はしないでデータに代入します。
-
16進英数字定数または16進日本語文字定数の場合,次のように指定します。
-
代入先の用途がDISPLAYの場合は,UTF-8のコード値を指定します。
-
代入先の用途がNATIONALの場合は,UTF-16のコード値を指定します。
-
-
集団項目を除く,用途がDISPLAYの項目と,用途がNATIONALの項目との間では代入はできません。
-
用途がNATIONALの項目を含む集団項目と,用途がDISPLAYの項目との間の代入はしないでください。また,用途がDISPLAYの項目を含む集団項目と,用途がNATIONALの項目との間の代入はしないでください。代入をした場合は,代入後の値を保証しません。
-
作用対象の用途がDISPLAYと,用途がNATIONALの代入規則を表1-8に示します。なお,表1-8に示されていないデータ項目の組み合わせについては,「2.3.1 データの比較・代入規則」の「表2‒7 代入規則」を参照してください。
-
コード変換中に未定義コードを検出するなどのエラーが発生したときは,次のエラーメッセージを出力して代入処理を中止します。
- (凡例)
-
○:代入できる
空白:代入できない
- 注※1
-
送り出し側の集団項目に用途がNATIONALの項目を含んでいて,受け取り側の集団項目に用途がDISPLAYの項目を含んでいる場合は,代入後の値を保証しません。また,送り出し側の集団項目に用途がDISPLAYの項目を含んでいて,受け取り側の集団項目に用途がNATIONALの項目を含んでいた場合も,代入後の値は保証しません。
- 注※2
-
受け取り側の集団項目に用途がNATIONALの項目を含んでいた場合は,代入後の値は保証しません。
- 注※3
-
受け取り側の集団項目に用途がDISPLAYの項目を含んでいた場合は,代入後の値は保証しません。
- 注※4
-
送り出し側の集団項目に用途がNATIONALの項目を含んでいた場合は,代入後の値は保証しません。
- 注※5
-
送り出し側の集団項目に用途がDISPLAYの項目を含んでいた場合は,代入後の値は保証しません。
- 注※6
-
整数は,次のデータ項目で小数点けたを持たない指定です。非整数は,次のデータ項目で小数点けたを持つ指定です。
-
内部10進項目
-
2進項目(COMP-Xも含む)
-
- 注※7
-
外部浮動小数点形式の数字項目です。
- 注※8
-
内部浮動小数点形式の数字項目です。
- 注※9
-
正の整数(0を含むが,-0は含まない)だけ代入できます。
(3) 比較条件式の設定
- AIXの場合
-
比較条件式に文字定数(英数字定数,日本語文字定数,ALL定数)を指定した場合は,テストデバッガが,文字定数の文字コードをシフトJISからUnicode(UTF-8またはUTF-16)に変換して比較するため,ユーザは文字定数をシフトJISで指定できます。
- Linuxの場合
-
用途がNATIONALのデータ名に対する比較条件式に文字定数(日本語文字定数,ALL定数)を指定した場合は,テストデバッガが,文字定数の文字コードをUTF-8からUTF-16に変換して比較するため,ユーザは文字定数をUTF-8で指定できます。
また,16進英数字定数または16進日本語文字定数を使用できるため,文字コードを直接比較条件式に設定できます。16進日本語文字定数での比較については,「1.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。
比較は,バイト単位で比較します。大小順もバイト単位の大小順になります。
比較条件式は,IFコマンド,またはSET WATCHコマンドを使用して設定できます。
IFコマンド,SET WATCHコマンドの詳細については,「5.4 TDコマンドの詳細」の「5.4.16 IF(データの値比較)」,「5.4.3 SET WATCH/RESET WATCH(データ監視条件の設定と解除)」を参照してください。
比較するときの規則を次に示します。
-
AIXの場合,比較条件式に文字定数を指定した場合は,文字定数の文字コードを次のように変換します。比較は変換後の値で比較します。
-
英数字定数の場合は,UTF-8に変換して比較します。
-
日本語文字定数の場合は,UTF-16に変換して比較します。
-
-
Linuxの場合,用途がNATIONALのデータ名に対する比較条件式に文字定数(日本語文字定数,ALL定数)を指定した場合は,文字定数の文字コードをUTF-8からUTF-16に変換します。比較は変換後の値で比較します。
ただし,TDコマンド格納ファイルを使用して,比較条件式に文字定数を指定した場合は,文字定数の文字コードをシフトJISから次のように変換します。比較は変換後の値で比較します。
-
英数字定数の場合は,UTF-8に変換して比較します。
-
日本語文字定数の場合,UTF-16に変換して比較します。
-
-
16進英数字定数または16進日本語文字定数を指定した場合は,文字コードを変換しないで比較します。
-
16進英数字定数または16進日本語文字定数を指定する場合,次のように指定してください。
-
用途がDISPLAYの項目と比較する場合は,UTF-8を指定します。
-
用途がNATIONALの項目と比較する場合は,UTF-16を指定します。
-
-
コード変換中にエラーが発生したときは,エラーメッセージを出力して比較処理を中止します。
- AIXの場合
-
「KCCC4302T-E 値が不正なため処理できません。値(XXXXX)」
- Linuxの場合
-
「KCCC4328T-E 値が不正なため処理できません。値(X' XXXXXX')」