COBOL2002 操作ガイド


8.4.2 機能の詳細

〈この項の構成〉

(1) データ値の表示

データ値をデータ属性表示するときは,テストデバッガが文字コードをUnicode(UTF-8またはUTF-16)からシフトJISに変換して,変換後の値を表示します。

また,データ値を16進数で表示するときは,文字コードの変換は行わず,Unicode(UTF-8またはUTF-16)の16進数で表示します。UTF-16の16進数での表示については,「8.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。

データ値の表示は,[データの操作]メニューから[データ値の表示]または[常時データ表示に設定]を選ぶか,またはDISPLAY DATAコマンド,SET TRACEコマンド,DISPLAY OBJECTコマンド,DISPLAY FACTORYコマンドで,データの値をデータ属性または16進数で表示できます。

GUIモードでのデータの表示については,「10.13.1 データ値の表示」を参照してください。

DISPLAY DATAコマンド,SET TRACEコマンド,DISPLAY OBJECTコマンド,DISPLAY FACTORYコマンドの詳細については,「12.4 TDコマンドの詳細」の「(8) DISPLAY DATA(データの値表示)」,「(10) DISPLAY OBJECT/DISPLAY FACTORY(オブジェクトのデータ値の表示)」,「(24) SET TRACE/RESET TRACE(トレース表示の開始と中止)」,を参照してください。

データ値を表示するときの規則を次に示します。

  1. データ値をデータ属性表示するときに,用途がDISPLAYの項目および用途がNATIONALの項目を変換して表示します。

    • 用途がDISPLAYの項目の場合は,UTF-8からシフトJISに変換して表示します。

    • 用途がNATIONALの項目の場合は,UTF-16からシフトJISに変換して表示します。

    各データ項目について変換するかどうかを表8-6に示します。

    表8‒6 シフトJISへ変換するデータ項目

    表示するデータ項目の種類

    UnicodeからシフトJISへの変換

    英数字集団項目

    英字項目

    英数字項目

    英数字編集項目

    数字編集項目

    ※1

    整数項目※2

    非整数項目※2

    COMP−X項目

    外部浮動小数点項目

    内部浮動小数点項目

    指標名

    指標データ項目

    外部ブール項目

    内部ブール項目

    日本語集団項目

    日本語項目

    日本語編集項目

    アドレス名

    アドレスデータ項目

    ポインタ項目

    オブジェクト参照データ項目

    OLEオブジェクト参照データ項目

    バリアントデータ項目

    (凡例)

    ○:UTF-8からシフトJISへ変換する

    ●:UTF-16からシフトJISへ変換する

    −:変換の必要がないため変換しない

    注※1

    文字がある場合は,UTF-8からシフトJISに変換します。

    注※2

    整数,非整数項目はそれぞれ外部10進項目,内部10進項目,および2進項目を含みます。

  2. 表示機能を使用してデータ値を16進数で表示する場合は,変換しないで,Unicode(UTF-8またはUTF-16)の16進数で表示します。データ属性表示で表示エラーが発生した場合も変換しないで,Unicode (UTF-8またはUTF-16)の16進数で表示します。

  3. Unicode(UTF-8またはUTF-16)からシフトJISへ変換できないコードがある場合は,そのコードを置き換えて表示します。

    • 用途がDISPLAYの項目の場合は,半角ピリオドに置き換えて表示します。

    • 用途がNATIONALの項目の場合は,全角'[図データ]'(げた記号)(シフトJIS:X'81AC')に置き換えて表示します。

  4. Unicode(UTF-8またはUTF-16)で多バイトとして扱われる文字の途中で終了している場合は,そのバイトを半角ピリオドに置き換えて表示します。

  5. コード変換中にエラーが発生したときは,データ属性表示で表示エラーになった場合と同様に変換しないで,Unicode(UTF-8またはUTF-16)の16進数で表示します。

(2) データ値の代入

データ名に文字定数(英数字定数,日本語文字定数,ALL定数)を代入する場合,テストデバッガが,文字定数の文字コードをシフトJISからUnicode(UTF-8またはUTF-16)に変換して,データに代入するので,ユーザは文字定数をシフトJISで指定できます。

また,16進英数字定数または16進日本語文字定数を使用すれば,文字コードを直接指定した代入ができます。16進日本語文字定数での代入については,「8.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。

データ値の代入は,[データの操作]メニューから[データ値の代入]を選ぶか,またはASSIGN DATAコマンドで,データに値を代入して,値を変更できます。

GUIモードでのデータ値の代入については,「10.13.2 データ値の代入」を参照してください。

ASSIGN DATAコマンドの詳細については,「12.4 TDコマンドの詳細」の「(4) ASSIGN DATA(データの値代入)」を参照してください。

代入操作の規則を次に示します。

  1. 代入する値に文字定数を指定した場合は次のように変換して代入します。

    • 英数字定数の場合は,シフトJISからUTF-8に変換して代入します。

    • 日本語文字定数の場合は,シフトJISからUTF-16に変換して代入します。

    代入は変換後のサイズで行われるため,変換によってデータのサイズが受け取り側のデータ項目のサイズを超えた場合,超えた部分は代入されません。

  2. 16進英数字定数または16進日本語文字定数を指定した場合は,文字コードの変換はしないでデータに代入します。

  3. 16進英数字定数または16進日本語文字定数の場合,次のように指定します。

    • 代入先の用途がDISPLAYの場合は,UTF-8のコード値を指定します。

    • 代入先の用途がNATIONALの場合は,UTF-16のコード値を指定します。

  4. 集団項目を除く,用途がDISPLAYの項目と,用途がNATIONALの項目との間では代入はできません。

  5. 用途がNATIONALの項目を含む集団項目と,用途がDISPLAYの項目間の代入はしないでください。また,用途がDISPLAYの項目を含む集団項目と,用途がNATIONALの項目間の代入はしないでください。代入をした場合は,代入後の値を保証しません。

  6. 作用対象の用途がDISPLAYと,用途がNATIONALの代入規則(Unicode機能)を表8-7に示します。なお,表8-7に示されていないデータ項目の組み合わせについては,「9.3.1 データの比較・代入規則」の「表9‒10 代入規則」を参照してください。

  7. コード変換中に未定義コードを検出するなどのエラーが発生したときは,次のエラーメッセージを出力して代入処理を中止します。

    「KCCC4302T-E 値が不正なため処理できません。値(XXXXX)」

    表8‒7 代入規則(Unicode機能)

    [図データ]

(凡例)

○:代入できる  空白:代入できない

注※1

送り出し側の集団項目に用途がNATIONALの項目を含んでいて,受け取り側の集団項目に用途がDISPLAYの項目を含んでいる場合は,代入後の値は保証しません。また,送り出し側の集団項目に用途がDISPLAYの項目を含んでいて,受け取り側の集団項目に用途がNATIONALの項目を含んでいた場合も,代入後の値は保証しません。

注※2

受け取り側の集団項目に用途がNATIONALの項目を含んでいた場合は,代入後の値は保証しません。

注※3

受け取り側の集団項目に用途がDISPLAYの項目を含んでいた場合は,代入後の値は保証しません。

注※4

送り出し側の集団項目に用途がNATIONALの項目を含んでいた場合は,代入後の値は保証しません。

注※5

送り出し側の集団項目に用途がDISPLAYの項目を含んでいた場合は,代入後の値は保証しません。

注※6

整数は,次のデータ項目で小数点けたを持たない指定です。非整数は,次のデータ項目で小数点けたを持つ指定です。

  • 内部10進項目

  • 2進項目(COMP-Xも含む)

注※7

外部浮動小数点形式の数字項目です。

注※8

内部浮動小数点形式の数字項目です。

注※9

正の整数(0を含むが,-0は含まない)だけ代入できます。

(3) 比較条件式の設定

比較条件式に文字定数(英数字定数,日本語文字定数,ALL定数)を指定した場合,テストデバッガが,文字定数の文字コードをシフトJISからUnicode(UTF-8またはUTF-16)に変換して比較するため,文字定数をシフトJISで指定できます。

また,16進英数字定数または16進日本語文字定数を使用できるため,文字コードを直接比較条件式に設定できます。16進日本語文字定数での比較については,「8.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。

比較は,バイト単位で比較します。大小順もバイト単位の大小順になります。

比較条件式は,[データの操作]メニューから[データ監視条件の設定]を選ぶか,IFコマンド,またはSET WATCHコマンドを使用して設定できます。

GUIモードでの比較条件式の設定については,「10.9.1 データ監視条件の設定」を参照してください。

IFコマンド,SET WATCHコマンドの詳細については,「12.4 TDコマンドの詳細」の「(15) IF(データの値比較)」,「(25) SET WATCH/RESET WATCH(データ監視条件の設定と解除)」を参照してください。

比較の規則を次に示します。

  1. 比較条件式に文字定数を指定した場合,文字定数の文字コードの比較は変換後の値で比較します。

    • 英数字定数の場合は,UTF-8に変換して比較します。

    • 日本語文字定数の場合は,UTF-16に変換して比較します。

  2. 16進英数字定数または16進日本語文字定数を指定した場合は,文字コードを変換しないで比較します。

  3. 16進英数字定数または16進日本語文字定数を指定する場合,次のように指定してください。

    • 用途がDISPLAYの項目と比較する場合は,UTF-8を指定します。

    • 用途がNATIONALの項目と比較する場合は,UTF-16を指定します。

  4. コード変換中にエラーが発生したときは,エラーメッセージを出力して比較処理を中止します。

    「KCCC4302T-E 値が不正なため処理できません。値(XXXXX)」