COBOL2002 使用の手引 操作編


1.4.1 機能の概要

Unicodeをデータ値として扱うCOBOLプログラムをデバッグするための機能です。

AIXの場合

テストデバッガは,データを表示するときに,UnicodeからシフトJISへの変換を行い,代入や比較をするときは,シフトJISからUnicodeへの変換を行います。そのため,ユーザはデータの操作をシフトJISでできます。

この機能は,カバレージ情報の蓄積およびカウント情報の表示を対象にしません。ただし,カバレージ情報の蓄積またはカウント情報の表示を実行した場合は,この機能を使用しないで実行した場合と同じ動作をします。

Linuxの場合

テストデバッガは,用途がNATIONALの項目に対して,データを表示するときに,UTF-16からUTF-8への変換を行い,代入や比較をするときは,UTF-8からUTF-16への変換を行います。そのため,ユーザはデータの操作をUTF-8でできます。

なお,COBOLソースがシフトJISであることから,デバッガでは,文字コードをシフトJISで扱います。このため,UTF-8,またはUTF-16からシフトJISに変換できない文字がある場合は,16進数や別の文字に置き換えて実行,または,エラーとして,実行を中止することがあります。詳細については,以降のLinuxの場合の説明での注意事項などを参照してください。

Unicode機能のその他の機能については,マニュアル「COBOL2002 使用の手引 手引編」の「Unicode機能」を参照してください。

〈この項の構成〉

(1) 使用するコード変換ライブラリ

Unicode機能を利用するには,コード変換ライブラリをインストールしておく必要があります。次のプログラムプロダクト(以降これらのプログラムプロダクトをコード変換ライブラリと表記します)をインストールしておく必要があります。

また,COBOLプログラムから直接コード変換ライブラリを呼び出す場合は,上記のプログラムプロダクトに加えて次のプログラムプロダクトが必要です。

コード変換ライブラリが次のどれかの場合で,テストデバッガを起動したときはエラーメッセージを出力してテストデバッガは終了します。

出力するメッセージを次に示します。

「KCCC0202T-U コード変換ライブラリが正しくインストールされていません。」

外字を表示するための外字マッピングファイルは,コード変換ライブラリのインストールディレクトリにあるファイルを使用します。外字マッピングファイル名は,インストール時のファイル名にします。

(2) コンパイラオプションと環境変数について

Unicode機能を利用してデバッグをするときに必要なコンパイラオプションと環境変数を次に示します。

なお,コンパイラオプションおよび環境変数については,マニュアル「COBOL2002 使用の手引 手引編」の「コンパイラオプション」および「環境変数」を参照してください。

Unicode機能に必要なコンパイラオプションを表1-3に,環境変数を表1-4に示します。

表1‒3 ンパイラオプション

コンパイラオプション

説明

-UniObjGen

デバッグ対象プログラムは,必ずこのコンパイラオプションを指定してコンパイルしなければならない。

-UniEndian

UTF-16のバイトオーダを指定したいときだけ指定する。

表1‒4 Unicode機能に必要な環境変数

環境変数

説明

CBLLANG

必ず設定しなければならない。

設定は,テストデバッガを起動する前に設定しなければならない。

CBLUNIENDIAN

UTF-16のバイトオーダを指定したいときだけ設定する。

設定は,テストデバッガを起動する前に設定しなければならない。

CBLSRCENCODING

必ず設定しなければならない。

設定は,テストデバッガを起動する前に設定しなければならない。

注※ Linuxの場合に指定する。

Unicode機能に必要なコンパイラオプションの指定と環境変数を設定した場合,テストデバッガは,次の規則に従い動作します。

  1. すべてのデバッグ対象プログラムに-UniObjGenコンパイラオプションを指定してコンパイルする必要があります。また,環境変数CBLLANGにUNICODEを指定した環境でデバッグをしてください。それ以外の環境での動作は保証しません。

  2. -UniEndianコンパイラオプションで指定したバイトオーダと環境変数CBLUNIENDIANで指定したバイトオーダを一致させてください。一致しない場合の動作は保証しません。

  3. 環境変数の値は,テストデバッガの起動前に設定してください。テストデバッガを起動中に環境変数の値を設定または変更しても,有効になりません。

(3) デバッグ手順

Unicode機能を利用したデバッグの手順を次に示します。

  1. デバッグ対象のCOBOLプログラムをコンパイルするときに,-UniObjGenコンパイラオプションを指定します。Linuxの場合は,環境変数CBLSRCENCODINGにSJISを同時に設定します。

  2. 環境変数CBLLANGに値としてUNICODEを設定します。Linuxの場合は,環境変数CBLSRCENCODINGにSJISを同時に設定します。

  3. テストデバッガを起動してデバッグをします。

用途がNATIONALの項目(UTF-16)に対してバイトオーダを指定する場合は,上記手順に合わせて,次の手順になります。

  1. デバッグ対象のCOBOLプログラムをコンパイルするときに,-UniEndianコンパイラオプションでUTF-16のバイトオーダを指定します。

  2. 環境変数CBLUNIENDIANに値としてBIGまたはLITTLEを設定して,UTF-16のバイトオーダを指定します。

  3. テストデバッガを起動して,デバッグをします。

バイトオーダの指定については,「1.4.3 その他の注意事項」の「(1) バイトオーダ」を参照してください。

(4) その他の注意事項

AIXの場合
  1. この機能を使用したテストデバッグを実行するには,シフトJIS環境下でなくてはなりません。この機能をEUC環境下で実行した場合はエラーになります。次のエラーメッセージを出力してテストデバッガは終了します。

    「KCCC0204T-U 日本語EUC環境下では,環境変数CBLLANGにUNICODEを指定してテストデバッガを実行できません。」

Linuxの場合
  1. この機能を使用したテストデバッグを実行するには,UTF-8環境下でなくてはなりません。また,あわせて,環境変数CBLLANG,およびCBLSRCENCODINGを設定しなければなりません。環境変数で設定する条件が満たされない場合は,エラーになります。

    ロケール,環境変数の設定値によるテストデバッガの動作を表1-5に示します。

    表1‒5 ロケール,環境変数の設定値によるテストデバッガの動作

    ロケール

    環境変数CBLLANGの値

    環境変数CBLSRCENCODINGの値

    テストデバッガの動作

    UTF-8

    UNICODE

    SJIS

    正常

    SJIS以外

    または設定なし

    エラー

    UNICODE以外

    または設定なし

    SJIS

    エラー

    SJIS以外

    または設定なし

    注※

    KCCC0205T-Sのエラーメッセージを出力し,テストデバッガは終了します。

  2. この機能を使用したカバレージ(カバレージ情報の蓄積,カウント情報の表示,カバレージ情報の表示(テキスト形式およびCSV形式),カバレージ情報の操作)を実行するには,UTF-8環境下でなくてはなりません。また,あわせて,環境変数CBLSRCENCODINGを設定しなければなりません。環境変数で設定する条件が満たされない場合は,エラーになります。

    ロケール,環境変数の設定値によるカバレージの動作を表1-6に示します。

    表1‒6 ロケール,環境変数の設定値によるカバレージの動作

    ロケール

    環境変数CBLSRCENCODINGの値

    カバレージの動作

    UTF-8

    SJIS

    正常

    SJIS以外

    または設定なし

    エラー

    注※

    KCCC0206T-Sのエラーメッセージを出力し,カバレージは終了します。