COBOL2002 操作ガイド


12.4 TDコマンドの詳細

〈この節の構成〉

(1) ALLOCATE AREA/FREE AREA(領域の確保と解放)

(a) ALLOCATE AREA(領域の確保)

アドレス名によって参照されるデータ項目と同じサイズの領域を確保して,アドレス名にアドレスを設定します。

指定されたサイズの領域を確保して,アドレスデータ項目またはポインタ項目にアドレスを設定します。

形式

[図データ]

  • AREA(データ名指定1)

    ポインタ項目またはアドレスデータ項目を指定します。

    LENGTHオペランドに指定されたサイズを確保して,指定されたポインタ項目またはアドレスデータ項目に,確保した領域のアドレスを設定します。

  • LENGTH(領域長)

    指定された領域長分の領域を確保します。指定できる長さは,1〜2,147,483,647バイトです。なお,データ名を使った指定はできません。

  • AREA(データ名指定2)

    アドレス名を指定します。アドレス名によって参照されるデータ項目と同じサイズの領域を確保して,指定されたアドレス名に確保した領域のアドレスを設定します。

注意事項
  • 確保した領域は,X'00'で初期化されます。

  • 確保した領域は,次の場合に解放されます。

    ・FREE AREAコマンドを実行したとき。

    ・プログラムの実行が終了したとき。

  • マルチスレッドプログラムでは使用できません。

  • LENGTHオペランドを指定して確保した領域を使用する場合に,確保した領域を超える部分にアクセスしたときの動作は保証しません。

使用例

領域破壊を起こす例を示します。

次の条件でテストした場合,ADDRESS_NAMEには英数字3文字分の領域にしか割り当たりません。

DATA2へ代入するのは'ABC'の3文字ですが,定義は10文字なので残りの7文字分の埋め字処理で領域破壊が起きます。

・COBOLソースでのデータ定義

01 DATA1 ADDRESSED BY ADDRESS_NAME.
 02 DATA2 PIC X(10).
01 ADDRESS_DATA USAGE ADDRESS.

・デバッガで実行するTDコマンド

ALLOCATE AREA( ADDRESS_DATA ) LENGTH( 3 )
ASSIGN DATA( ADDRESS_NAME ) VALUE( ADDRESS_DATA )
ASSIGN DATA( DATA2 ) VALUE( 'ABC' ) *> 領域破壊を起こす。

(b) FREE AREA(領域の解放)

アドレス名の示す領域を解放します。

アドレスデータ項目またはポインタ項目も指定できます。

形式

[図データ]

  • AREA(データ名指定)

    確保した領域を解放するアドレス名を指定します。

    または,確保した領域を解放するアドレスデータ項目,もしくはポインタ項目を指定します。

注意事項
  • ALLOCATE AREAコマンドで確保された領域以外は解放できません。

  • 領域の解放後,アドレス名に0を設定します。アドレスデータ項目またはポインタ項目を指定した場合も同様です。

  • マルチスレッドプログラムでは使用できません。

(2) ASSIGN ADDRESS(アドレスの取得)

データ名のアドレスを取得します。

形式

[図データ]

  • ADDRESS(データ名指定1)

    アドレス名,アドレスデータ項目,またはポインタ項目を指定します。

    指定したデータ名に,DATAオペランドで指定したデータ名のアドレスが設定されます。

  • DATA(データ名指定2)

    アドレスを取得したいデータ名を指定します。

注意事項
  • データ名指定2には,次のデータ項目は指定できません。

    ・指標名

    ・アドレス名

    ・動的長基本項目

  • データ名指定2にブール項目を指定した場合,バイト境界になっていればアドレスを取得できます。バイト境界になっていない場合は,エラーになります。

  • アドレスを取得したあとは,取得したアドレスが指すデータが参照できるかどうかは確認しません。参照できなくなっていた場合,そのアドレスを使ってデータ操作したときの動作は保証しません。

  • データ名指定1にアドレス名を指定したとき,指定したアドレス名で参照されるデータとデータ名指定2に指定したデータの構造のチェックはしません。二つの構造が違うことによる領域破壊などの動作は保証しません。

使用例

領域破壊を起こす例を示します。

次の条件で,データ名指定1にADDRS,データ名指定2にSRC_DATA1を指定した場合,DATA1(アドレス名ADDRSで参照されるデータ)とSRC_DATA1は,構造およびサイズとも異なりますが,ASSIGN ADDRESSコマンドは成功します。

ただし,DATA3 OF DATA1の部分はSRC_DATA1の範囲外になるため,その値を更新すると,領域破壊になります。

・COBOLソースでのデータ定義

 01 DATA1 ADDRESSED BY ADDRS.
  02 DATA2 PIC X(10).
  02 DATA3 PIC X(10).
 01 SRC_DATA1 PIC X(10).

・デバッガで実行するTDコマンド

 ASSIGN ADDRESS( ADDRS ) DATA( SRC_DATA1 )
 ASSIGN DATA( DATA3 OF DATA1) VALUE( "SAMPLE" ) *> 領域破壊になる。
  • データ名指定2にアドレス名で参照されたデータ名を指定した場合,アドレス名が指すアドレスが設定されます。

(3) ASSIGN CASECODE(ケースコードの設定)

テストケースの終了状態(ケースコード)を設定します。

形式

[図データ]

  • CASECODE( ケースコード )

    指定できる範囲は,0〜2,147,483,647の整数です。

(4) ASSIGN DATA(データの値代入)

データに値を代入します。

形式

[図データ]

  • DATA(データ名指定1)

    値が代入されるデータ名を指定します。

  • VALUE(データ名指定2)

    代入する値を持つデータ名を指定します。

  • VALUE(定数)

    代入する定数を指定します。

注意事項
  • データ名指定には,添字の範囲指定はできません。

  • カウンタ変数を指定できるのは,データ名指定2だけです。

(5) CASE(テストケースの指定)

テストケースの手続きを設定します。

形式

[図データ]

  • ID(ケース識別子)

    テストケースの名称をケース識別子として定義します。英字で始まる31文字以内の英数字文字列で指定します。

  • TOSTEP(ステップ数)

    プログラムの実行を開始してから終了するまでのステップ数を指定します。最初の文を実行したときのステップ数を1とします。

    指定できる範囲は,1〜2,147,483,647の整数です。実行した文が指定された数に達すると,実行が打ち切られます。

  • CONDITION(ケース選択条件 〔AND … 〕)

    テストケースを実行する条件を指定します。指定したすべての条件を満たしたときにテストケースが実行されます。

    ケース選択条件は,次の条件式で指定します。

    [図データ]

    ケース識別子は,先に実行したテストケースのケース識別子を指定します。#LASTCODEを指定した場合は,直前のテストケースが仮定されます。

    ケースコードは,先行するテストケース内でASSIGN CASECODEコマンドを使用して設定した値です。

  • TDコマンド群

    テスト手続きをTDコマンドで指定します。

注意事項
  • ステップ数は,スレッドに依存しないで,実行した文をカウントします。

(6) DISPLAY BREAK(中断点の表示)

設定されている中断点の一覧を表示します。

形式

[図データ]

使用例と表示形式
使用例1

プログラムPROGRAM_Aの入口に中断点が設定されています。

DISPLAY BREAK(#ALL)

[図データ]

使用例2

次の中断点が設定されています。

  • プログラムPROGRAM_Bの入口・出口

  • 内部プログラムSUB1の入口・出口

  • プログラムPROGRAM_Bの行番号1000の文

  • 内部プログラムの手続き名P1(行番号1600の文)・行番号1800の文

DISPLAY BREAK(#PROGRAM(PROGRAM_B))

[図データ]

(7) DISPLAY COMMENT(注釈の表示)

指定した文字を表示します。

形式

[図データ]

  • COMMENT(コメント文字列)

    表示する文字列を指定します。文字列に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

  • PRINT

    SET PRINTコマンドで指定した出力先に結果を表示します。

(8) DISPLAY DATA(データの値表示)

データの値を指定された形式で表示します。バリアントデータ項目は,VARIANT値も表示されます。

形式

[図データ]

  • DATA(データ名指定 | #ALL)

    表示するデータを指定します。

    ・データ名指定:データ名を指定します。

    ・#ALL:現在中断している翻訳単位で参照できるすべてのデータの値を表示します。

  • ATTRIBUTE | HEX | ALLTYPE

    データの表示形式を指定します。

    ・ATTRIBUTE:データ名の属性で表示します。

    ・HEX:16進で表示します。

    ・ALLTYPE:ATTRIBUTE・HEXの両方の形式で表示します。

  • GROUP | ELEMENT

    集団項目の表示形式を指定します。

    ・GROUP:英数字集団項目を英数字項目とみなし全体を先頭から表示します。または,日本語集団項目を日本語項目とみなし全体を先頭から表示します。

    ・ELEMENT:基本項目単位に表示します。

  • PRINT

    SET PRINTコマンドで指定した出力先に結果を表示します。

    SET PRINTコマンドについては,「(22) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。

注意事項
  • GROUPオペランド,およびELEMENTオペランドは,データ名が集団項目でないときは無効となります。

  • #ALLを指定したとき,ELEMENTオペランドは無効となります。集団項目はGROUPオペランドの形式で表示されます。

  • ELEMENTオペランドは,集団項目を部分参照で表示するときは無効となります。

  • HEXオペランドおよびALLTYPEオペランドは,データ名が内部ブール項目のときは無効となり,ATTRIBUTEオペランド指定時同様に0と1から成る文字列が表示されます。内部ブール項目が集団項目の下位項目として存在し,集団項目をELEMENT指定で表示するときもHEXオペランドおよびALLTYPEオペランドは無効となります。

  • データの値がデータの属性で表示できないときは,「エラー」と表示した上で,値を16進数で表示します。

  • DATA(#ALL)を指定したときは,特殊レジスタRETURN-CODEとCOBOL2002の原始プログラムの手続き部で参照されている特殊レジスタも表示されます。

使用例と表示形式

使用例1について,Windows(x86) COBOL2002の場合とWindows(x64) COBOL2002の場合の表示例を示します。使用例2以降で,明記されていない場合については,Windows(x86) COBOL2002の場合だけを示します。

Windows(x86) COBOL2002の場合とWindows(x64) COBOL2002の場合の相違は,16進表示個所でアドレスを表示している部分が8けたから16けたになっていることです。また,表示するデータによってはデータサイズが変更になるものもあります。変更になるデータは,マニュアル「COBOL2002 ユーザーズガイド」の「アドレス系データを表現するデータ項目」を参照してください。

使用例1

基本項目を属性と16進で表示します。

DISPLAY DATA(基本項目01)   ALLTYPE

[図データ]

使用例2

表の要素の1〜20番目を,属性と16進で表示します。

DISPLAY DATA (表基本03-1 (1..20))   ALLTYPE
  • すべての要素が正しく表示された。

    [図データ]

  • 4〜6番目と8番目の要素が,データ属性で表示できない値であった。

    [図データ]

使用例3〜使用例6のTDコマンドが表示するCOBOLプログラムのデータ定義

[図データ]

使用例3

集団項目をGROUP指定で表示します。全体を英数字項目として表示されます。GROUPオペランドは省略できます。

DISPLAY DATA (集団01)   GROUP  ATTRIBUTE

[図データ]

使用例4

集団項目を16進数で表示します。全体を英数字項目とした上で,16進数で表示されます。

DISPLAY DATA (集団01)   HEX

[図データ]

使用例5

集団項目を,属性と16進で表示します。

DISPLAY DATA (集団01)   ALLTYPE

[図データ]

使用例6

集団項目を指定して,集団項目の所属するすべての基本項目を,属性と16進で表示します。

DISPLAY DATA (集団01)   ELEMENT ALLTYPE

[図データ]

使用例7

バリアントデータ項目の表の要素の1〜3番目を,属性と16進で表示します。

DISPLAY DATA (VARIANT-DATA(1..3))   ALLTYPE

[図データ]

使用例8

カウンタ変数を基本項目と属性と16進で表示します。

DISPLAY DATA (Counter01)   ALLTYPE

[図データ]

使用例9

記号名を基本項目と属性と16進で表示します。

DISPLAY DATA (Return01)   ALLTYPE

[図データ]

使用例10

内部プログラムで中断したときに,すべてのデータを表示します。最外レベル(01,77)単位に表示されます。

DISPLAY DATA (#ALL)   ALLTYPE

[図データ]

使用例11

データ名の整数01,整数02を16進数で表示されます。

DISPLAY DATA (整数01)   HEX
DISPLAY DATA (整数02)   HEX

[図データ]

(9) DISPLAY FLOW(フロー情報の表示)

蓄積されているフロー情報を表示します。フロー情報とは,プログラムの実行経路を示す通過点の情報です。フロー情報は,最後に通過した文から,プログラムの実行順と逆の順序に表示されます。

形式

[図データ]

表示例

ソース要素の表示形式については,「9.5 ソース要素・中断点・通過点の表示形式」を参照してください。なお,マルチスレッドプログラムでないときは,スレッドIDは表示されません。

>>>>> 手続きフロー情報
スレッドID(123) #EXIT <飲み物管理/飲み物管理>
スレッドID(123) #EXIT <牛乳/牛乳>
スレッドID(123) #EXIT <牛乳/日付管理>
スレッドID(123) 41700 USE-CL1 OF SITUATION-1 <牛乳/日付管理>
スレッドID(123) 41200 USE-IN1 OF SITUATION-1 <牛乳/日付管理>
スレッドID(123) #EXIT <牛乳/製造管理>
スレッドID(123) 52600 USE-S-CL1 <牛乳/製造管理>
スレッドID(123) 52100 USE-S-IN1 <牛乳/製造管理>
スレッドID(123) #ENTRY <牛乳/製造管理 >
スレッドID(123) 40600 MAIN-START OF SITUATION-1 <牛乳/日付管理>
スレッドID(123) 40500 SITUATION-1 <牛乳/日付管理>
スレッドID(123) 40300 主処理 <牛乳/日付管理>
スレッドID(123) #ENTRY <牛乳/日付管理>
スレッドID(123) #ENTRY <牛乳/牛乳>
スレッドID(123) 4100 PARAM-GET <飲み物管理/飲み物管理>
スレッドID(123) 4000 主処理 <飲み物管理/飲み物管理>
スレッドID(123) #ENTRY <飲み物管理/飲み物管理>
<<<<<
 
>>>>> 文フロー情報
 
スレッドID(123) #EXIT <飲み物管理/飲み物管理>
スレッドID(123) 6300 <飲み物管理/飲み物管理>
スレッドID(123) #EXIT <牛乳/牛乳>
スレッドID(123) 20800 <牛乳/牛乳>
スレッドID(123) 20200 <牛乳/牛乳>
スレッドID(123) 20100 <牛乳/牛乳>
スレッドID(123) #ENTRY <牛乳/牛乳>
スレッドID(123) 4200 <飲み物管理/飲み物管理>
スレッドID(123) 4100 PARAM-GET <飲み物管理/飲み物管理>
スレッドID(123) 4000 主処理 <飲み物管理/飲み物管理>
スレッドID(123) #ENTRY <飲み物管理/飲み物管理>
 
<<<<<
 
>>>>> プログラムフロー情報
 
スレッドID(123) #EXIT <飲み物管理/飲み物管理>
スレッドID(123) #EXIT <牛乳/牛乳>
スレッドID(123) #EXIT <牛乳/日付管理>
スレッドID(123) #EXIT <牛乳/製造管理>
スレッドID(123) #ENTRY <牛乳/製造管理 >
スレッドID(123) #ENTRY <牛乳/日付管理>
スレッドID(123) #ENTRY <牛乳/牛乳>
スレッドID(123) #ENTRY <飲み物管理/飲み物管理>
 
<<<<<

(10) DISPLAY OBJECT/DISPLAY FACTORY(オブジェクトのデータ値の表示)

DISPLAY OBJECTコマンドは,オブジェクト参照データ項目または既定義オブジェクトSELF,EXCEPTION-OBJECTの指定によって,その参照するオブジェクトの次の情報を表示します。

DISPLAY FACTORYコマンドは,クラス名の指定によって,ファクトリオブジェクトの次の情報を表示します。

形式

[図データ]

  • データ名指定

    オブジェクトを参照するオブジェクト参照データ項目を指定します。

  • SELF,EXCEPTION-OBJECT

    オブジェクトを参照する既定義オブジェクト名を指定します。

  • #>

    データ名指定,SELFまたはEXCEPTION-OBJECTで参照するオブジェクトの特定のデータ名を指すために指定します。

  • クラス名指定1

    データ名が所属するクラス名を指定します。クラス名は,オブジェクトを定義するクラスまたはそのスーパクラスの名称です。

  • データ名

    表示するデータ名を指定します。

  • #ALL

    クラス名指定1が指定されないときは,オブジェクトを定義するクラスとそのスーパクラスに所属するデータをすべて表示します。クラス名指定1が指定されたときは,指定されたクラスに所属するデータをすべて表示します。ただし,データが定義されていないスーパクラスは何も表示されません。

  • ATTRIBUTE | HEX | ALLTYPE

    データの表示形式を指定します。

    ・ATTRIBUTE:データ名の属性で表示します。

    ・HEX:16進で表示します。

    ・ALLTYPE:ATTRIBUTE,HEXの両方の形式で表示します。

  • GROUP | ELEMENT

    集団項目の表示形式を指定します。

    ・GROUP:英数字集団項目を英数字項目とみなし全体を先頭から表示します。または,日本語集団項目を日本語項目とみなし全体を先頭から表示します。

    ・ELEMENT:基本項目単位に表示します。

  • PRINT

    SET PRINTコマンドで指定した出力先に結果を表示します。

    SET PRINTコマンドについては,「(22) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。

    [図データ]

  • クラス名指定2

    ファクトリオブジェクトのクラス名を指定します。

  • #>

    参照するオブジェクトの特定のデータ名を指すために指定します。

  • クラス名指定3

    データ名が定義されているクラス名を指定します。クラス名は,オブジェクトを作成したクラスまたはそのスーパクラスの名称です。

  • データ名

    表示するデータ名を指定します。

  • #ALL

    クラス名指定3が指定されないときは,オブジェクトを定義するクラスとそのスーパクラスに所属するデータをすべて表示します。クラス名指定3が指定されたときは,指定されたクラスに所属するデータをすべて表示します。ただしデータが定義されていないスーパクラスは何も表示されません。

  • ATTRIBUTE | HEX | ALLTYPE

    データの表示形式を指定します。

    ・ATTRIBUTE:データ名の属性で表示します。

    ・HEX:16進で表示します。

    ・ALLTYPE:ATTRIBUTE,HEXの両方の形式で表示します。

  • GROUP | ELEMENT

    集団項目の表示形式を指定します。

    ・GROUP:集団項目を英数字項目とみなし全体を先頭から表示します。

    ・ELEMENT:基本項目単位に表示します。

  • PRINT

    SET PRINTコマンドで指定した出力先に結果を表示します。

    SET PRINTコマンドについては,「(22) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。

注意事項
  • GROUPオペランド,およびELEMENTオペランドは,データ名が集団項目でないときは無効となります。

  • #ALLを指定したとき,ELEMENTオペランドは無効となります。集団項目はGROUPオペランドの形式で表示されます。

  • 既定義オブジェクトのEXCEPTION-OBJECTは,COBOLプログラムの手続きで使用されているときに指定できます。既定義オブジェクトのSELFは,メソッド内では常に指定できます。

  • ELEMENTオペランドは,集団項目を部分参照で表示する場合は無効となります。

  • HEX | ALLTYPEオペランドは,データ名が内部ブール項目のときは無効となります。

  • 表示するデータ名がオブジェクト参照データ項目の場合,データの値を表示します。オブジェクト参照データ項目が参照するオブジェクトの情報とデータ名は表示しません。

  • クラス名指定1・クラス名指定2・クラス名指定3で指定するクラスは,-TDInfコンパイラオプションを指定してコンパイルする必要があります。データ名・#ALL指定によってデータを表示するスーパクラスも,-TDInfコンパイラオプションを指定してコンパイルしたクラスだけです。

  • データ名に,特殊レジスタは指定できません。

  • データ名が表のとき,添字および部分参照の最左端位置と長さは整数定数を指定する必要があります。

  • データ名,#ALLの指定を行わないとき,データ名の値は表示しません。DISPLAY OBJECTコマンドはオブジェクトの種別とクラス名だけを,DISPLAY FACTORYコマンドはクラス名だけを表示します。

使用例と表示形式

使用例1について,Windows(x86) COBOL2002の場合とWindows(x64) COBOL2002の場合の表示例を示します。使用例2以降で,明記されていない場合については,Windows(x86) COBOL2002の場合だけを示します。

Windows(x86) COBOL2002の場合とWindows(x64) COBOL2002の場合の相違は,16進表示個所でアドレスを表示している部分が8けたから16けたになっていることです。また,表示するデータによってはデータサイズが変更になるものもあります。変更になるデータは,マニュアル「COBOL2002 ユーザーズガイド」の「アドレス系データを表現するデータ項目」を参照してください。

次のCOBOLプログラムのクラス定義に従って,TDコマンドの使用例を示します。

クラスMILKは,クラスDRINKを継承します。

クラスDRINK
IDENTIFICATION DIVISION.
CLASS-ID. DRINK INHERITS BASE.
     :
IDENTIFICATION DIVISION.
FACTORY.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 F-DATA01 PIC S9(9) COMP.
01 F-DATA02.
 02 F-DATA03 PIC X(25).
 02 F-DATA04 PIC 9(18).
 02 F-DATA05 PIC X(5).
01 F-DATA06 PIC X(5).
:
 
OBJECT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 O-DATA01 PIC S9(9) COMP.
01 O-DATA02 PIC S9(9) COMP.
:
END CLASS DRINK.
クラスMILK
IDENTIFICATION DIVISION.
CLASS-ID. MILK INHERITS DRINK.
     :
IDENTIFICATION DIVISION.
FACTORY.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 F-DATA01 PIC S9(9) COMP.
01 F-DATA11 PIC S9(9) COMP.
01 F-DATA12 PIC S9(9) COMP.
:
 
OBJECT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 O-DATA01 PIC S9(9) COMP.
01 O-DATA11 PIC S9(9) COMP.
:
 
END CLASS MILK.
使用例1

既定義オブジェクトSELFの値が,クラスMILKから生成されたファクトリオブジェクトを参照するときに,クラスMILKのスーパクラスDRINKに定義されたデータ名F-DATA01を属性と16進で表示します。

DISPLAY OBJECT (SELF #> #CLASS(DRINK) F-DATA01)  ALLTYPE

[図データ]

使用例2

既定義オブジェクトSELFの値がクラスMILKから生成されたインスタンスオブジェクトを参照するとき,クラスMILKのスーパクラスDRINKで定義されたデータ名O-DATA01を属性と16進で表示します。

DISPLAY OBJECT (SELF #> #CLASS(DRINK) O-DATA01)  ALLTYPE

[図データ]

使用例3

既定義オブジェクトSELFの値が,クラスMILKから生成されたインスタンスオブジェクトを参照するとき,クラス名を指定しないで,データ名O-DATA01を属性と16進で表示します。

DISPLAY OBJECT (SELF #> O-DATA01)  ALLTYPE

[図データ]

使用例4

既定義オブジェクトSELFの値が,クラスMILKから生成されたファクトリオブジェクトを参照するとき,クラスMILKのスーパクラスDRINKのすべてのファクトリデータを,属性と16進で表示します。

DISPLAY OBJECT (SELF #> #CLASS(DRINK) #ALL)  ALLTYPE

[図データ]

使用例5

オブジェクト参照データ項目A-DRINKの値が,クラスMILKから生成されたファクトリオブジェクトを参照するとき,オブジェクトのすべてのファクトリデータを,属性で表示します。

DISPLAY OBJECT (A-DRINK #> #ALL)  ATTRIBUTE

[図データ]

使用例6

クラス名MILKを指定して,ファクトリオブジェクトのスーパクラスDRINKのデータ名F-DATA01を属性と16進で表示します。

DISPLAY FACTORY (#CLASS(MILK) #> #CLASS(DRINK) F-DATA01)  ALLTYPE

[図データ]

使用例7

クラス名MILKを指定して,ファクトリオブジェクトのデータ名F-DATA01を属性で表示します。

ファクトリオブジェクトのスーパクラス名は指定しないで,該当するデータ名をすべて表示します。

DISPLAY FACTORY (#CLASS(MILK) #> F-DATA01)  ATTRIBUTE

[図データ]

使用例8

クラス名MILKを指定して,ファクトリオブジェクトのスーパクラスDRINKのすべてのデータを属性と16進で表示します。

DISPLAY FACTORY (#CLASS(MILK) #> #CLASS(DRINK) #ALL)  ALLTYPE

[図データ]

使用例9

オブジェクト参照データ項目B-DRINKがクラスMILKのインスタンスオブジェクトを参照するとき,オブジェクト参照の値,クラス名,オブジェクトの種別を表示します。

DISPLAY OBJECT(B-DRINK)

[図データ]

(11) DISPLAY POINT(現在位置の表示)

プログラムが中断している現在の位置を表示します。

形式

[図データ]

使用例と表示形式
使用例1

マルチスレッドプログラムのプログラムPROGRAM_Aの入口で中断しています。

DISPLAY POINT

[図データ]

使用例2

プログラムPROGRAM_Bの内部プログラムSUB1の1600行の手続き名P1で中断しています。

DISPLAY POINT

[図データ]

(12) GETPROPERTY(プロパティの値表示)

OLE2のOLEオブジェクトが持つOLEプロパティの値を表示します。

形式

[図データ]

  • OLE(OLEプロパティ指定)

    OLEプロパティを指定します。

  • OLE(データ名指定1 #> #ALL)

    ・データ名指定1:OLEオブジェクトを参照するOLEオブジェクト参照データ項目を指定します。

  • ATTRIBUTE | HEX | ALLTYPE

    データの表示形式を指定します。

    ・ATTRIBUTE:プロパティの属性で表示します。

    ・HEX:16進で表示します。

    ・ALLTYPE:ATTRIBUTE,HEXの両方の形式で表示します。

  • PRINT

    SET PRINTコマンドで指定した出力先に結果を表示します。

    SET PRINTコマンドについては,「(22) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。

注意事項

引数を持つOLEプロパティの値を表示するときは,OLEプロパティの名称に引数を付けて指定します。引数を指定しない場合は,名称のあとに"(*)"を表示して,値は表示されません。

使用例と表示形式

使用例1について,Windows(x86) COBOL2002の場合とWindows(x64) COBOL2002の場合の表示例を示します。使用例2以降で,明記されていない場合については,Windows(x86) COBOL2002の場合だけを示します。

Windows(x86) COBOL2002の場合とWindows(x64) COBOL2002の場合の相違は,16進表示個所でアドレスを表示している部分が8けたから16けたになっていることです。また,表示するデータによってはデータサイズが変更になるものもあります。変更になるデータは,マニュアル「COBOL2002 ユーザーズガイド」の「アドレス系データを表現するデータ項目」を参照してください。

使用例1

OLEオブジェクト参照データ項目OBJ-REFの値が参照するOLEオブジェクトのプロパティ'OrganizationName'の値を属性と16進で表示します。

GETPROPERTY OLE ('OrganizationName' WITH OBJ-REF)   ALLTYPE

[図データ]

使用例2

OLEオブジェクト参照データ項目OBJ-REFの値が参照するOLEオブジェクトのすべてのプロパティの値を属性で表示します。

GETPROPERTY OLE (OBJ-REF #> #ALL)

[図データ]

使用例3

引数を持つOLEプロパティNameに引数3を渡して値を表示します。

GETPROPERTY OLE ('Name(3)' WITH OBJ-REF)   ALLTYPE

[図データ]

(13) GO(実行の開始/再開)

プログラムが起動前状態のときは,実行を開始します。中断状態のときは,実行を再開します。

形式

[図データ]

  • PARAMETER(パラメタの文字列)

    起動時にプログラムへ渡すパラメタを指定します。

  • COVERAGE

    カバレージ情報を蓄積します。

  • STATEMENT(文番号)・PARAGRAPH(手続き名)

    プログラムの実行を再開させる位置を変更するときに,再開する文または手続きを指定します。

注意事項
  • PARAMETERオペランドおよびCOVERAGEオペランドは,プログラムの中断状態で指定したときは無効となります。

  • PARAMETERオペランドは,次の場合は指定できません。

    ・プログラムの連動実行を行っている。

    ・-SimMainコンパイラオプションでプログラムをコンパイルして主プログラムシミュレーションを行っている。

  • 文字列に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

  • COVERAGEオペランドによってカバレージ情報を蓄積する翻訳単位は,コンパイル時に-CVInfコンパイラオプションを指定します。

  • STATEMENTオペランドおよびPARAGRAPHオペランドは,プログラムの起動前に指定したときは無効となります。

  • STATEMENTオペランドおよびPARAGRAPHオペランドは,中断しているソース要素の文または手続きを指定します。宣言手続きで中断しているときは,その宣言手続きの中の文または手続きを指定します。宣言手続きの外で中断しているときは,宣言手続きの外の文または手続きを指定します。

  • STATEMENTオペランドにENTRY文の文番号は指定できません。

(14) GO END・GO INVALID・GO EOP・GO ERROR(入出力条件シミュレーション)

入出力条件を擬似的に発生させます。このとき,入出力状態に値を設定します。ファイルシミュレーションの手続きにだけ指定できます。

ファイルシミュレーションについては,「9.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。

形式

[図データ]

注意事項
  • GO ENDコマンド実行後のプログラムの制御は,次のような関係となります。

    USE指定あり

    USE指定なし

    AT END指定あり

    AT END指定の無条件文に制御が移る

    AT END指定の無条件文に制御が移る

    AT END指定なし

    USE手続きが実行される

    入出力文の終わりに制御が移る

  • GO INVALIDコマンド実行後のプログラムの制御は,次のような関係となります。

    USE指定あり

    USE指定なし

    INVALID KEY指定あり

    INVALID KEY指定の無条件文に制御が移る

    INVALID KEY指定の無条件文に制御が移る

    INVALID KEY指定なし

    USE手続きが実行される

    入出力文の終わりに制御が移る

  • GO EOPコマンド実行後のプログラムの制御は,次のような関係となります。

    USE指定あり

    USE指定なし

    END-OF-PAGE指定あり

    END-OF-PAGE指定の無条件文に制御が移る

    END-OF-PAGE指定の無条件文に制御が移る

    END-OF-PAGE指定なし

    入出力文の終わりに制御が移る

    入出力文の終わりに制御が移る

  • GO ERRORコマンド実行後のプログラムの制御は,次のような関係となります。

    USE指定あり

    USE指定なし

    USE手続きが実行される

    入出力文の終わりに制御が移る

(15) IF(データの値比較)

条件が成立したときは,ELSEの前のTDコマンド群を実行します。条件が成立しないときは,ELSEのあとのTDコマンド群を実行します。

形式

[図データ]

使用例

文番号8700で中断し,R-CODE(I)の値によって,TDコマンドを実行します。

 SET QUALIFICATION (#PROG(社員))
 SET BREAK  ST(8700) DO
   IF CONDITION(R-CODE(I) = 0) 
     DISPLAY COM('**TEST OK **')
   ELSE
     IF CONDITION(R-CODE(I) NOT= 8) 
       DISPLAY COMMENT ('??? TEST NG')
       DISPLAY DATA(R-CODE(I))  HEX
       ASSIGN DATA(R-CODE(I)) VALUE(8) 
     ELSE
       DISPLAY COMMENT ('**ERROR TEST OK**')
     ENDIF
   ENDIF
   GO
 ENDDO
 GO

(16) QUIT(テストデバッグの終了)

テストデバッグを終了します。

形式

[図データ]

(17) REPEAT(繰り返し指定)

次のシミュレーションで一度に実行する手続きと,繰り返す回数を指定します。

ファイルシミュレーションについては,「9.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。

形式

[図データ]

  • TIMES(反復回数)

    シミュレーションが実行されることで,指定されたTDコマンド群を繰り返し実行する回数を指定します。指定できるのは1〜2,147,483,647の整数で,省略時は1が仮定されます。

  • TDコマンド群

    一度に実行するシミュレーション手続きを指定します。

(18) SELECT ACTION(入出力文選択指定)

擬似実行する入出力文に対応させて,ファイルシミュレーションの手続きを実行させます。ファイルシミュレーションについては,「9.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。

形式

[図データ]

  • ACTION(READ | WRITE | REWRITE | START | DELETE)

    対象とする入出力文を指定します。

  • 繰り返し指定・TDコマンド群

    指定した入出力文で実行するシミュレーション手続きを指定します。

    繰り返し指定の詳細については,「(17) REPEAT(繰り返し指定)」を参照してください。

(19) SET BREAK/RESET BREAK(中断点の設定と解除)

(a) SET BREAK(中断点の設定)

プログラムの実行を中断させる中断点を設定します。中断したときに実行するTDコマンドの指定もできます。

形式

[図データ]

  • STATEMENT(文番号指定)

    文へ中断点を設定します。

  • STATEMENT(文番号指定..文番号)

    指定した範囲内のすべての文および手続き名に中断点を設定します。

  • PARAGRAPH(手続き名指定)

    手続きへ中断点を設定します。

  • PARAGRAPH(手続き名指定 ..手続き名)

    指定した範囲内のすべての文および手続き名に中断点を設定します。

  • PROCEDURE(入口,出口指定)

    指定したソース要素の入口または出口に中断点を設定します。

  • ALLENTRY(翻訳単位指定 | #ALL)

    次のソース要素の入口に中断を設定します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • ALLEXIT(翻訳単位指定 | #ALL)

    次のソース要素の出口に中断を設定します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • EXTERNAL

    ALLENTRYオペランドの指定があるときは,ほかの翻訳単位の呼び出し文から呼び出される入口だけに中断点を設定します。ALLEXITオペランドの指定があるときは,ほかの翻訳単位に戻る出口だけに中断点を設定します。

    中断点を設定する入口と出口は,次のとおりになります。

入口または出口に中断点を設定するソース要素
  • プログラム

    外部プログラム

  • クラス

    メソッド

  • 利用者定義関数

入口または出口に中断点を設定しないソース要素
  • プログラム

    内部プログラム

  • SKIP(スキップ回数)

    設定した中断点で中断する周期を指定できます。中断してから次に中断するまで,スキップ回数分,中断点で止まらずに通過させることができます。指定できるのは,1〜2,147,483,647の整数です。スキップ回数のカウントは,プログラムの開始時に0が設定されます。

  • COUNTER(カウンタ変数)

    カウンタ変数は,プログラムの開始時に0が設定され,DO〜ENDDOオペランドで指定したTDコマンド群が実行されるたびに1ずつ値が増加します。

  • MESSAGE | NOMESSAGE

    中断を知らせるメッセージを表示するかどうかを指定します。

  • DO 〔 TDコマンド群 〕 ENDDO

    中断時に実行するTDコマンド群を指定します。

注意事項
  • 中断点が設定されている文または手続きに,再度,中断点の設定をしたときは,前の設定が解除され,新しい指定が有効となります。指定方法が異なる場合でも,同じ文に対する設定のときは,次のように,新しい指定が有効になります。

使用例

SET BREAK PARAGRAPH (P1) SKIP (10)の指定で,SET BREAK STATEMENT(100) SKIP(1)は解除されます。

       SET BREAK STATEMENT (100)  SKIP(1)
       SET BREAK PARAGRAPH (P1)   SKIP(10)

[図データ]

  • 中断点が設定されている入口または出口に,再度中断点を設定したときは,前の設定が解除され,新しい指定が有効となります。指定方法が異なる場合でも,同じ入口または出口に対する設定のときは,次のように,新しい指定が有効になります。

使用例

プログラム「社員」の入口に設定された中断点のSKIP指定は20となります。

SET BREAK  ALLENTRY (#ALL) EXTERNAL  SKIP (10)
SET BREAK  PROCEDURE (#PROGRAM (社員/社員) #ENTRY)  SKIP (20)
  • STATEMENTオペランドとPARAGRAPHオペランドの範囲指定,ALLENTRYオペランド,ALLEXITオペランドは,複数の中断点を一度に設定します。カウンタ変数とスキップ回数は,設定された個々の中断点ごとにカウントされます。

  • 中断点を設定できる文が存在しない文番号を指定した場合は,その文番号よりあとで最も近い中断点を設定できる文に中断点を設定します。ただし,指定した文番号よりあとに中断点を設定できる文がないときは,翻訳単位の最後の文を仮定します。

  • STATEMENTオペランドで範囲指定を行ったとき,最後の文番号に中断点を設定できる文がないときは,指定した文番号より前で最も近い文にまで,中断点を設定します。

  • STATEMENTオペランドとPARAGRAPHオペランドの範囲指定では,終了位置が開始位置より前にあってはなりません。

(b) RESET BREAK(中断点の解除)

SET BREAKコマンドで設定した中断点を解除します。

形式

[図データ]

  • STATEMENT(文番号指定)

    文の中断点を解除します。

  • STATEMENT(文番号指定 ..文番号)

    指定した範囲内のすべての文および手続き名の中断点を解除します。

  • PARAGRAPH(手続き名指定)

    手続きの中断点を解除します。

  • PARAGRAPH(手続き名指定 ..手続き名)

    指定した範囲内のすべての文および手続き名の中断点を解除します。

  • PROCEDURE(入口,出口指定)

    指定したソース要素の入口または出口の中断点を解除します。

  • ALLENTRY(翻訳単位指定 | #ALL)

    次のソース要素の入口の中断点を解除します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • ALLEXIT(翻訳単位指定 | #ALL)

    次のソース要素の出口の中断点を解除します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • EXTERNAL

    ALLENTRYオペランドの指定があるときは,ほかの翻訳単位の呼び出し文から呼び出される入口の中断点を解除します。ALLEXITオペランドの指定があるときは,ほかの翻訳単位に戻る出口の中断点を解除します。

    EXTERNALオペランド指定時に解除される入口,出口の中断点は,「(a) SET BREAK(中断点の設定)」の入口または出口に中断点を設定するソース要素と同様となります。

  • BREAK(#ALL)

    すべての中断点を解除します。

注意事項

中断点を設定したときのSET BREAKコマンドの指定方法と同一の指定方法でなくても解除できます。

使用例

すべてのソース要素の入口に中断点を設定したあと,プログラムPGM01とPGM02の,外部プログラムの入口の中断点だけを解除します。

  SET  BREAK  ALLENTRY (#ALL)  EXTERNAL
 
  RESET BREAK  ALLENTRY (#PROGRAM(PGM01))   EXTERNAL
  RESET BREAK  ALLENTRY (#PROGRAM(PGM02))   EXTERNAL

(20) SET FLOW/RESET FLOW (フロー情報の蓄積開始と終了)

(a) SET FLOW(フロー情報の蓄積開始)

フロー情報は,プログラムの実行時に通過した文の実行経路です。SET FLOWコマンドで,フロー情報の蓄積を開始します。蓄積したフロー情報は,DISPLAY FLOWコマンドで表示できます。また,バッチモードでは,実行時エラーが発生したときに,フロー情報を表示します。

形式

[図データ]

  • PROCEDURE | PARAGRAPH | STATEMENT

    蓄積する通過点の単位を指定します。

    PROCEDURE:ソース単位の入口,出口の情報を蓄積します。

    PARAGRAPH:ソース単位の入口,出口と手続き名の情報を蓄積します。

    STATEMENT:ソース単位の入口,出口と手続き名および文の情報を蓄積します。

  • STACK(蓄積数)

    蓄積する通過点の数を指定します。指定できる数は1〜500の整数で,省略時は99が仮定されます。

(b) RESET FLOW(フロー情報の蓄積中止)

フロー情報の蓄積を中止します。

形式

[図データ]

(21) SET LOG/RESET LOG(モニタウィンドウ表示内容のファイル出力の設定と解除)

(a) SET LOG(モニタウィンドウ表示内容のファイル出力の設定)

モニタウィンドウへ出力されるテストデバッグの実行結果をファイルへ出力します。

形式

[図データ]

  • OUTFILE(ファイル名)

    実行結果を出力するファイル名を指定します。Windowsファイル名に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

注意事項
  • SET LOGでファイルがオープンされ,RESET LOGでファイルがクローズされます。ファイルがオープンされている間は,ほかのアプリケーションからの書き込みはできません。

  • 指定されたファイルがすでにある場合は,上書きとなります。

  • SET LOGによって出力先が指定されていた場合は,先に指定されたファイルをクローズしてから指定されたファイルをオープンします。

  • オープンされているファイルを,ファイル名に指定することはできません。したがって,SET PRINTコマンドで指定されたファイルも,指定できません。

  • 大文字・小文字を区別するため,#OPTIONコマンドの指定がファイル名に効かないようにさせたいときは,文字列を指定します。指定方法については,「12.1 TDコマンドの指定方法」の「(4) 英大文字と英小文字,英数字文字と拡張文字を区別しての文字列の指定方法」を参照してください。

  • ファイル名に正規表現を指定しても適用されません。

(b) RESET LOG(モニタウィンドウ表示内容のファイル出力の解除)

テストデバッグの実行結果をモニタウィンドウへ出力するように戻します。

形式

[図データ]

(22) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)

(a) SET PRINT(テスト結果蓄積先の設定)

PRINTオペランドが指定されたTDコマンドによる実行結果の出力先を指定します。SET PRINTの指定がない場合,GUIモードではモニタウィンドウへ,バッチモードでは結果出力ファイルへ,実行結果を出力します。

形式

[図データ]

  • OUTFILE(ファイル名)

    実行結果を出力するファイル名を指定します。Windowsファイル名に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

注意事項
  • SET PRINTでファイルがオープンされ,RESET PRINTでファイルがクローズされます。ファイルがオープンされている間は,ほかのアプリケーションからの書き込みを行うと,ファイルのオープンでエラーとなります。

  • 指定されたファイルがすでにある場合は,上書きとなります。

  • SET PRINTコマンドによって出力先が指定されていた場合は,先に指定されたファイルをクローズしてから指定されたファイルをオープンします。

  • すでにオープンされているファイルをファイル名に指定できません。したがって,SET LOGコマンドで指定されたファイルも指定できません。

  • 大文字・小文字を区別するため,#OPTIONコマンドの指定がファイル名に効かないようにさせたいときは,文字列を指定します。指定方法については,「12.1 TDコマンドの指定方法」の「(4) 英大文字と英小文字,英数字文字と拡張文字を区別しての文字列の指定方法」を参照してください。

  • ファイル名に正規表現を指定しても適用されません。

(b) RESET PRINT(テスト結果蓄積先の解除)

実行結果の出力先を戻します。

形式

[図データ]

(23) SET QUALIFICATION/RESET QUALIFICATION(翻訳単位・ソース要素の指定と解除)

(a) SET QUALIFICATION(翻訳単位・ソース要素の指定)

テストデバッグの対象とする翻訳単位またはソース要素を変更します。SET QUALIFICATIONコマンドで翻訳単位指定をすると,その後の文番号に翻訳単位を指定したことになります。SET QUALIFICATIONコマンドでソース要素指定をすると,その後のソース要素指定ができるオペランドに指定したことになります。

形式

[図データ]

  • QUALIFICATION(翻訳単位指定)

    仮定する翻訳単位を指定します。

  • QUALIFICATION(ソース要素指定)

    仮定するソース要素を指定します。

注意事項
  • SET QUALIFICATIONコマンドは,プログラムの開始時および再開時に解除されます。また,プログラムの実行中止(STOPコマンド)でも解除されます。

  • 翻訳単位指定は,文番号だけに有効です。その他にはソース要素指定をしなくてはなりません。

    SET QUALIFICATIONコマンド以降,文番号以外も対象とする場合は,ソース要素指定を指定します。

(b) RESET QUALIFICATION(翻訳単位・ソース要素の指定の解除)

翻訳単位指定またはソース要素指定を解除します。

形式

[図データ]

(24) SET TRACE/RESET TRACE(トレース表示の開始と中止)

(a) SET TRACE(トレース表示の開始)

プログラムの実行を追跡し,指定した単位で通過点を表示します。

形式

[図データ]

  • PROCEDURE | PARAGRAPH | STATEMENT

    表示単位を指定します。

    PROCEDURE:ソース単位の入口,出口を表示します。

    PARAGRAPH:ソース単位の入口,出口および手続き名を表示します。

    STATEMENT:ソース単位の入口,出口,手続き名および文を表示します。

  • INTERFACE

    入口では引数を表示し,出口では戻り値を表示します。

  • FROMSTATEMENT(文番号指定)|FROMPARAGRAPH(手続き名指定)

    表示を開始する位置を指定します。

  • TOSTATEMENT(文番号指定)|TOPARAGRAPH(手続き名指定)

    表示を終了する位置を指定します。

  • TOSTEP(ステップ数)

    表示を終了するステップ数を指定します。最初に表示したときのステップ数を1とします。指定できる範囲は,1〜2,147,483,647の整数です。

  • PRINT

    SET PRINTコマンドで指定した出力先に結果を表示します。

    SET PRINTコマンドについては,「(22) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。

注意事項
  • プログラムを再開始した場合,FROMSTATEMENTおよびFROMPARAGRAPHオペランドの指定がある場合はオペランドで指定した位置を通過したときに表示が開始されます。指定がない場合は,プログラム開始時に表示が開始されます。

  • FROMSTATEMENTオペランドの文番号指定に該当する文または手続き名がない場合は,指定した文番号以降の最も近い文または手続き名を仮定します。

    また,TOSTATEMENTオペランドを指定した文番号に該当する文または手続き名がない場合は,指定した文番号以前の最も近い文または手続き名を仮定します。

  • FROMSTATEMENTおよびFROMPARAGRAPHオペランドとTOSTATEMENTおよびTOPARAGRAPHオペランドの指定がある場合は,開始する位置と終了する位置に同じ位置は指定できません。

(b) RESET TRACE(トレース表示の中止)

SET TRACEコマンドで開始したトレース表示を中止します。

形式

[図データ]

(25) SET WATCH/RESET WATCH(データ監視条件の設定と解除)

(a) SET WATCH(データ監視条件の設定)

プログラムの実行を中断する条件を設定します。

形式

[図データ]

  • WATCH(監視識別子)

    データ監視条件を識別するための名称を指定します。

  • DATA(データ名指定)

    監視対象とするデータ名を指定します。値の変化を監視します。詳細については,「9.2.1 プログラムの中断」を参照してください。

  • CONDITION(比較条件式)

    監視対象となるデータの値に対しての比較条件式を指定します。条件式の評価を監視します。

    比較条件式の指定の詳細については,「9.3.1 データの比較・代入規則」の「(2) データの比較規則」を参照してください。

    条件式の監視については,「9.2.1 プログラムの中断」を参照してください。

  • SINGLETHREAD

    単一のスレッドのデータの監視を行います。

  • SINGLEINSTANCE

    単一のオブジェクトのデータの監視を行います。

  • COUNTER(カウンタ変数)

    カウンタ変数は,プログラムの開始時に0が設定され,DO〜ENDDOオペランドで指定したTDコマンド群が実行されるたびに1ずつ値が増加します。

  • MESSAGE | NOMESSAGE

    中断を知らせるメッセージを表示するかどうかを指定します。

  • DO 〔 TDコマンド群 〕 ENDDO

    中断時に実行するTDコマンド群を指定します。

注意事項
  • データ名指定または比較条件式のデータ名に,カウンタ変数は指定できません。

  • データ名指定または比較条件式のデータ名に添字付きのデータ名を指定するときの添字は,整数定数でなければなりません。また,添字の範囲指定はできません。

  • データ名指定または比較条件式のデータ名に部分参照のデータ名を指定するとき,最左端位置と長さ指定は整数定数でなければなりません。

  • すでに設定された監視識別子を指定して,再度,データ監視条件を設定した場合は,以前の設定が無効となり,新しい設定が有効となります。

  • オブジェクトに属するデータ名の領域がオブジェクトごとに生成されるときは,生成されたオブジェクトの領域ごとに監視が行われます。カウンタ変数は,オブジェクトのデータごとにカウントされます。SINGLEINSTANCEオペランドは,その一つのデータを指定して監視できます。

  • データ名の領域が再帰によって複数生成されるときは,生成された領域ごとに監視が行われます。カウンタ変数は,データごとにカウントされます。

  • マルチスレッドで実行するプログラムで,指定したデータ名の領域がスレッドごとに生成されるときは,生成されたスレッドの領域ごとに監視が行われます。カウンタ変数は,スレッドのデータごとにカウントされます。SINGLETHREADオペランドは,その一つのデータを指定して監視できます。

  • 連絡節で定義したLIMIT指定のない動的長基本項目への部分参照指定は,プログラム開始前には指定できません。指定した場合は,KCCC3434T-Eのメッセージを出力して処理を中止します。

(b) RESET WATCH(データ監視条件の解除)

SET WATCHコマンドで設定したデータ監視条件を解除します。

形式

[図データ]

  • WATCH(監視識別子)

    データ監視条件を識別するための名称を指定します。

  • WATCH(#ALL)

    すべてのデータ監視条件を解除します。

注意事項

GUIモードで設定したデータ監視条件は,RESET WATCHコマンドで解除できません。

(26) STEP IN(ステップイン実行の開始/再開)

プログラムが起動前のときは,実行を開始します。中断状態のときは,実行を再開します。プログラムを1文実行して中断します。

形式

[図データ]

  • PARAMETER(パラメタの文字列)

    起動時にプログラムへ渡すパラメタを指定します。

  • COVERAGE

    カバレージ情報を蓄積します。

注意事項
  • PARAMETERオペランドおよびCOVERAGEオペランドは,プログラムの中断状態で指定したときは無効となります。

  • PARAMETERオペランドは,次の場合は指定できません。

    ・プログラムの連動実行を行っている。

    ・-SimMainコンパイラオプションでプログラムをコンパイルして主プログラムシミュレーションを行っている。

    文字列に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

  • COVERAGEオペランドによってカバレージ情報を蓄積する翻訳単位は,コンパイル時に-CVInfコンパイラオプションを指定します。

(27) STEP OVER(ステップオーバー実行の開始/再開)

プログラムが起動前のときは,実行を開始します。中断状態のときは,実行を再開します。プログラムを1文実行して中断します。ただし,CALL文,関数呼び出しを持つ文およびINVOKE文は1文として実行します。

形式

[図データ]

  • PARAMETER(パラメタの文字列)

    起動時にプログラムへ渡すパラメタを指定します。

  • COVERAGE

    カバレージ情報を蓄積します。

注意事項
  • PARAMETERオペランド,COVERAGEオペランドは,プログラムの中断状態で指定したときは無効となります。

  • PARAMETERオペランドは,次の場合は指定できません。

    ・プログラムの連動実行を行っている。

    ・-SimMainコンパイラオプションでプログラムをコンパイルして主プログラムシミュレーションを行っている。

    文字列に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

  • COVERAGEオペランドによってカバレージ情報を蓄積する翻訳単位は,コンパイル時に-CVInfコンパイラオプションを指定します。

(28) STEP TO(ステップツー実行の再開)

プログラムの中断時に,実行を再開する位置を変更します。

形式

[図データ]

  • STATEMENT(文番号)・PARAGRAPH(手続き名)

    プログラムを再開させるときに,再開させる文または手続き名を指定します。

注意事項
  • STATEMENTオペランド,PARAGRAPHオペランドは,中断しているソース要素の文または手続き名を指定します。宣言手続きで中断しているときは,その宣言手続きの中の文または手続きを指定します。宣言手続きの外で中断しているときは,宣言手続きの外の文または手続き名を指定します。

  • STATEMENTオペランドにENTRY文の文番号は指定できません。

(29) STOP(プログラムの強制終了)

実行中のプログラムを強制的に終了します。

形式

[図データ]

(30) SIMULATE DC(DCシミュレーションの設定)

DCシミュレーションを,TDコマンドで手続きを設定して実行させます。詳細については,「9.2.7 プログラムの単体テスト」の「(5)  DCシミュレーション」を参照してください。

形式

[図データ]

[図データ]

  • DC(操作文種別)

    シミュレーションの対象とするDC文を指定します。

    指定できる操作文は,COMMIT,DISABLE,ENABLE,RECEIVE,ROLLBACK,SEND文です。

  • CDNAME(通信記述名)

    シミュレーションの対象とする通信記述名を指定します。操作文種別と通信記述名の組み合わせでシミュレーション対象が決まります。

  • COUNTER(カウンタ変数)

    カウンタ変数は,プログラムの開始時に0が設定され,シミュレーションが実行されるたびに1ずつ値が増加します。

  • MESSAGE | NOMESSAGE

    シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。

  • 繰り返し指定,TDコマンド群

    DC文で実行する手続きをTDコマンドで指定します。

    繰り返し指定の詳細については,「(17) REPEAT(繰り返し指定)」を参照してください。

注意事項

マルチスレッドプログラムでは,使用できません。

(31) SIMULATE FILE(ファイルシミュレーションの設定)

ファイルのシミュレーションで実行する手続きを指定します。詳細については,「9.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。

形式

[図データ]

  • FILE(ファイル名指定)

    シミュレーション対象とするファイル名を指定します。

  • OPENMODE(INPUT | OUTPUT | IO | EXTEND)

    ファイルのオープンモードを指定します。

  • RECORD(記号名)

    シミュレーション手続き中で使用する記号名を定義します。記号名は,該当するファイルのレコード名定義に対応します。

  • COUNTER(カウンタ変数)

    カウンタ変数は,プログラムの開始時に0が設定され,シミュレーションが実行されるたびに1ずつ値が増加します。

  • MESSAGE | NOMESSAGE

    シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。

  • DEFINE 〔 記号名構造定義指定 ・・・ 〕 ENDDEFINE

    RECORDオペランドで指定した記号名に対応するデータ名が集団項目のとき,集団項目に所属するデータ名を指定します。詳細については,「(37) レベル番号(記号名構造指定)」を参照してください。

  • 入出力文選択指定

    入出力文で実行する手続きをTDコマンドで指定します。

    繰り返し指定の詳細は,「(18) SELECT ACTION(入出力文選択指定)」を参照してください。

  • 繰り返し指定,TDコマンド群

    入出力文で実行する手続きをTDコマンドで指定します。

    繰り返し指定の詳細については,「(17) REPEAT(繰り返し指定)」を参照してください。

(32) SIMULATE MAIN(主プログラムシミュレーションの設定)

主プログラムシミュレーションで実行する手続きを指定します。詳細については,「9.2.7 プログラムの単体テスト」の「(1) 主プログラムシミュレーション」を参照してください。

形式

[図データ]

  • MAIN(プログラム指定)

    主プログラムから呼び出される副プログラムの入口名を指定します。

  • 入口名

    ENTRY文で指定される入口点の名前を指定します。

  • MESSAGE | NOMESSAGE

    シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。

  • TDコマンド群

    テストデバッグ対象のプログラムへ渡すインタフェースの設定をする手続きをTDコマンドで指定します。

(33) SIMULATE SUB(副プログラムシミュレーションの設定)

副プログラムシミュレーションで実行する手続きを指定します。詳細については,「9.2.7 プログラムの単体テスト」の「(2) 副プログラムシミュレーション」を参照してください。

形式

[図データ]

  • SUB(プログラム指定)

    シミュレーション対象とするプログラム定義の名前を指定します。

  • 入口名

    ENTRY文で指定される入口点の名前を指定します。

  • USING(記号名〔, ・・・ 〕 )

    CALL文のUSINGで指定したデータ名をシミュレーションの手続きで参照するための記号名を指定します。USINGで指定したデータ名の順番とUSINGオペランドに指定した記号名の順番が対応します。

  • RETURNING(記号名)

    シミュレーション手続きでRETURNINGに値を設定するための記号名を指定します。

  • COUNTER(カウンタ変数)

    カウンタ変数は,プログラムの開始時に0が設定され,シミュレーションが実行されるたびに1ずつ値が増加します。

  • MESSAGE | NOMESSAGE

    シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。

  • DEFINE 〔 記号名構造定義指定 ・・・ 〕 ENDDEFINE

    USINGまたはRETURNINGオペランドで指定した記号名に対応するデータ名が集団項目のとき,集団項目に所属するデータ名を指定します。詳細については,「(37) レベル番号(記号名構造指定)」を参照してください。

  • 繰り返し指定,TDコマンド群

    プログラムの呼び出しをシミュレーションで実行する手続きをTDコマンドで指定します。

    繰り返し指定の詳細については,「(17) REPEAT(繰り返し指定)」を参照してください。

(34) TEST(テストケースの選択)

複数のテストケースをまとめて定義して,その中から実行するテストケースを指定します。

形式

[図データ]

  • CASEID(ケース識別子)

    定義されたテストケースの中から,実行するテストケースを指定します。このオペランドを指定しなかったときは,TESTコマンドの中で定義されたすべてのテストケースを実行します。末尾に*を付けて指定すると,*より前の文字が一致するケース識別子を持つすべてのテストケースを実行します。

  • テストケース

    テストケースとして実行するTDコマンドを指定します。

    テストケースの詳細については,「(5) CASE(テストケースの指定)」を参照してください。

  • コマンド群

    QUIT,#INCLUDE,#OPTIONコマンドが指定できます。

(35) #INCLUDE(TDコマンド格納ファイルの取り込み)

指定したファイルからTDコマンドを入力します。

形式

[図データ]

  • INFILE(ファイル名)

    TDコマンドを格納しているファイル名を指定します。Windowsファイル名に空白,括弧,アポストロフィまたはダブルコーテーションを使用する場合の指定方法については,「12.1 TDコマンドの指定方法」を参照してください。

  • MESSAGE | NOMESSAGE

    入力したTDコマンドを表示するかどうかを指定します。

注意事項
  • #INCLUDEコマンドで指定したファイルの中に,再度同じファイル名を指定した#INCLUDEコマンドは記述できません。

  • 大文字・小文字を区別するため,#OPTIONコマンドの指定がファイル名に効かないようにさせたいときは,文字列を指定します。指定方法については,「12.1 TDコマンドの指定方法」の「(4) 英大文字と英小文字,英数字文字と拡張文字を区別しての文字列の指定方法」を参照してください。

  • バッチモードのcbltd2kコマンドで-SyntaxOnlyオプションの指定の有無に関係なく,指定されたTDコマンド格納ファイルの取り込みをします。バッチモードのcbltd2kコマンドで-SyntaxOnlyオプションが指定されていた場合は,取り込んだTDコマンド格納ファイル内のTDコマンドの構文解析が行われます。

  • ファイル名に正規表現を指定しても適用されません。

(36) #OPTION(オプションの変更)

TDコマンドの解析方法を指定します。

形式

[図データ]

下記の説明で,特殊文字とは次の文字です。

+ − * / = ¥ ' " ; . , ( ) < > & :

  • NOCASE

    同じ文字を表す英大文字と英小文字,英数字文字と拡張文字を同じに扱います。

    ・COBOL2002の予約語と特殊文字は,英数字文字と拡張文字のどちらでも指定できます。

    ・データ名の拡張文字と英小文字は,英数字文字の英大文字に変換されます。

  • CASE1

    同じ文字を表す英数字文字の英大文字と英小文字を同じに扱います。英数字文字と拡張文字は区別します。

    ・COBOL2002の予約語と特殊文字は,英数字文字で指定します。

    ・データ名の英数字文字の英小文字は英大文字に変換されます。拡張文字のデータ名は変換しません。

  • CASE2

    同じ文字を表す英大文字と英小文字,英数字文字と拡張文字を区別します。

    ・COBOL2002の予約語と特殊文字は,英数字文字の英大文字で指定します。

    ・データ名は変換しません。

  • 2002SYNTAX

    TDコマンドのオペランドに指定する利用者定義語の最大長をCOBOL2002言語の規則と同等にします。利用者定義語に関する詳細については,マニュアル「COBOL2002 言語 標準仕様編」を参照してください。

  • 85SYNTAX

    TDコマンドのオペランドに指定する利用者定義語の最大長をCOBOL85言語の規則と同等にします。

注意事項

バッチモードの起動コマンドで-SyntaxOnlyオプションの指定の有無に関係なく,指定は有効となります。

使用例

DISPLAY DATAコマンドのデータ名data1およびdata2は,英小文字のまま扱われます。

      #OPTION  NOCASE
      SET BREAK STATEMENT(#PROGRAM( PROG ) 100) DO
            #OPTION  CASE2
            DISPLAY DATA( data1 )
      ENDDO
      DISPLAY DATA( data2 )

(37) レベル番号(記号名構造指定)

次のオペランドで指定する記号名に対応するデータ名が集団項目のとき,集団項目に属するデータ名に対応する記号名を指定します。指定された記号名によって,集団項目に属するデータ名をシミュレーションの手続きで参照できます。

形式

[図データ]

  • レベル番号

    レベル番号を指定します。

  • 記号名

    集団項目に属するデータ名に対応させる記号名を指定します。

注意事項
  • DEFINEオペランドとENDDEFINEオペランドの間でだけ指定できます。

  • 対応するデータ名にTYPE句またはSAME AS句の指定がある場合,レベル番号は展開後の構造で指定します。

  • レベル番号の01〜09の0は省略できます。