COBOL2002 使用の手引 操作編
![[目次]](FIGURE/CONTENT.GIF)
![[用語]](FIGURE/GLOSS.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
(1) SET BREAK/RESET BREAK(中断点の設定と解除)
プログラムの実行を中断させる中断点を設定します。中断したときに実行するTDコマンドの指定もできます。
- 形式
![[図データ]](FIGURE/TD050201.GIF)
- 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)
![[図データ]](FIGURE/TD050200.GIF)
- 中断点が設定されている入口または出口に,再度中断点を設定したときは,前の設定が解除され,新しい指定が有効となります。指定方法が異なる場合でも,同じ入口または出口に対する設定のときは,次のように,新しい指定が有効になります。
- 使用例
- プログラム「社員」の入口に設定された中断点のSKIP指定は20となります。
SET BREAK ALLENTRY (#ALL) EXTERNAL SKIP(10)
SET BREAK PROCEDURE (#PROGRAM(社員/社員) #ENTRY) SKIP(20)
- STATEMENTオペランドとPARAGRAPHオペランドの範囲指定,ALLENTRYオペランド,ALLEXITオペランドは,複数の中断点を一度に設定します。カウンタ変数とスキップ回数は,設定された個々の中断点ごとにカウントされます。
- 中断点を設定できる文が存在しない文番号を指定した場合は,その文番号よりあとで最も近い中断点を設定できる文に中断点を設定します。ただし,指定した文番号よりあとに中断点を設定できる文がないときは,翻訳単位の最後の文を仮定します。
- STATEMENTオペランドで範囲を指定したとき,最後の文番号に中断点を設定できる文がないときは,指定した文番号より前で最も近い文にまで,中断点を設定します。
- STATEMENTオペランドとPARAGRAPHオペランドの範囲指定では,終了位置が開始位置より前にあってはなりません。
SET BREAKコマンドで設定した中断点を解除します。
- 形式
![[図データ]](FIGURE/TD050202.GIF)
- 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
設定されている中断点の一覧を表示します。
- 形式
![[図データ]](FIGURE/TD950030.GIF)
- 使用例と表示形式
- 使用例1
- プログラムPROGRAM_Aの入口に中断点が設定されています。
DISPLAY BREAK(#ALL)
![[図データ]](FIGURE/TD950040.GIF)
- 使用例2
- 次の中断点が設定されています。
- プログラムPROGRAM_Bの入口・出口
- 内部プログラムSUB1の入口・出口
- プログラムPROGRAM_Bの行番号1000の文
- 内部プログラムの手続き名P1(行番号1600の文)・行番号1800の文
DISPLAY BREAK(#PROGRAM(PROGRAM_B))
![[図データ]](FIGURE/TD950050.GIF)
(3) SET WATCH/RESET WATCH(データ監視条件の設定と解除)
プログラムの実行を中断する条件を設定します。
- 形式
![[図データ]](FIGURE/TD050203.GIF)
- WATCH(監視識別子)
データ監視条件を識別するための名称を指定します。
- DATA(データ名指定)
監視対象とするデータ名を指定します。値の変化を監視します。詳細については,「2.2.1 プログラムの中断」の「(2) データ監視条件の設定による中断」を参照してください。
- CONDITION(比較条件式)
監視対象となるデータの値に対しての比較条件式を指定します。条件式の評価を監視します。
比較条件式の指定の詳細については,「2.3.1 データの比較・代入規則」の「(2) データの比較規則」を参照してください。
条件式の監視については,「2.2.1 プログラムの中断」を参照してください。
- SINGLETHREAD
単一のスレッドのデータを監視します。
- SINGLEINSTANCE
単一のオブジェクトのデータを監視します。
- COUNTER(カウンタ変数)
カウンタ変数は,プログラムの開始時に0が設定され,DO〜ENDDOオペランドで指定したTDコマンド群が実行されるたびに1ずつ値が増加します。
- MESSAGE | NOMESSAGE
中断を知らせるメッセージを表示するかどうかを指定します。
- DO 〔 TDコマンド群 〕 ENDDO
中断時に実行するTDコマンド群を指定します。
- 注意事項
- データ名指定または比較条件式のデータ名に,カウンタ変数は指定できません。
- データ名指定または比較条件式のデータ名に添字付きのデータ名を指定するときの添字は,整数定数でなければなりません。また,添字の範囲指定はできません。
- データ名指定または比較条件式のデータ名に部分参照のデータ名を指定するとき,最左端位置と長さ指定は整数定数でなければなりません。
- すでに設定された監視識別子を指定して,再度,データ監視条件を設定した場合は,以前の設定が無効となり,新しい設定が有効となります。
- オブジェクトに属するデータ項目の領域がオブジェクトごとに生成されるときは,生成されたオブジェクトの領域ごとに監視が行われます。カウンタ変数は,オブジェクトのデータごとにカウントされます。SINGLEINSTANCEオペランドは,その一つのデータを指定して監視できます。
- データ項目の領域が再帰によって複数生成されるときは,生成された領域ごとに監視が行われます。カウンタ変数は,データごとにカウントされます。
- マルチスレッドで実行するプログラムで,指定したデータ名の領域がスレッドごとに生成されるときは,生成されたスレッドの領域ごとに監視が行われます。カウンタ変数は,スレッドのデータごとにカウントされます。SINGLETHREADオペランドは,その一つのデータを指定して監視できます。
SET WATCHコマンドで設定したデータ監視条件を解除します。
- 形式
![[図データ]](FIGURE/TD050204.GIF)
- WATCH(監視識別子)
データ監視条件を識別するための名称を指定します。
- WATCH(#ALL)
すべてのデータ監視条件を解除します。
プログラムが起動前状態のときは,実行を開始します。中断状態のときは,実行を再開します。
- 形式
![[図データ]](FIGURE/TD050205.GIF)
- PARAMETER(引数の文字列)
起動時にプログラムへ渡す引数を指定します。
- COVERAGE
カバレージ情報を蓄積します。
- STATEMENT(文番号)・PARAGRAPH(手続き名)
プログラムの実行を再開させる位置を変更するときに,再開する文または手続きを指定します。
- 注意事項
- PARAMETERオペランドおよびCOVERAGEオペランドは,プログラムの中断状態で指定したときは無効となります。
- PARAMETERオペランドは,次の場合は指定できません。
・プログラムの連動実行をしている。
・-SimMainコンパイラオプションでプログラムをコンパイルして主プログラムシミュレーションをしている。
文字列に空白,括弧,アポストロフィ(')またはダブルコーテーション(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- COVERAGEオペランドによってカバレージ情報を蓄積する翻訳単位は,コンパイル時に-CVInfコンパイラオプションを指定します。
- STATEMENTオペランドおよびPARAGRAPHオペランドは,プログラムの起動前に指定したときは無効となります。
- STATEMENTオペランドおよびPARAGRAPHオペランドは,中断しているソース要素の文または手続きを指定します。宣言手続きで中断しているときは,その宣言手続きの中の文または手続きを指定します。宣言手続きの外で中断しているときは,宣言手続きの外の文または手続きを指定します。
- STATEMENTオペランドにENTRY文の文番号は指定できません。
プログラムが起動前のときは,実行を開始します。中断状態のときは,実行を再開します。プログラムを1文実行して中断します。
- 形式
![[図データ]](FIGURE/TD050206.GIF)
- PARAMETER(引数の文字列)
起動時にプログラムへ渡す引数を指定します。
- COVERAGE
カバレージ情報を蓄積します。
- 注意事項
- PARAMETERオペランドおよびCOVERAGEオペランドは,プログラムの中断状態で指定したときは無効となります。
- PARAMETERオペランドは,次の場合は指定できません。
・プログラムの連動実行をしている。
・-SimMainコンパイラオプションでプログラムをコンパイルして主プログラムシミュレーションをしている。
文字列に空白,括弧,アポストロフィ(')またはダブルコーテーション(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- COVERAGEオペランドによってカバレージ情報を蓄積する翻訳単位は,コンパイル時に-CVInfコンパイラオプションを指定します。
プログラムが起動前のときは,実行を開始します。中断状態のときは,実行を再開します。プログラムを1文実行して中断します。ただし,CALL文,関数呼び出しを持つ文およびINVOKE文は1文として実行します。
- 形式
![[図データ]](FIGURE/TD050207.GIF)
- PARAMETER(引数の文字列)
起動時にプログラムへ渡す引数を指定します。
- COVERAGE
カバレージ情報を蓄積します。
- 注意事項
- PARAMETERオペランド,COVERAGEオペランドは,プログラムの中断状態で指定したときは無効となります。
- PARAMETERオペランドは,次の場合は指定できません。
・プログラムの連動実行をしている。
・-SimMainコンパイラオプションでプログラムをコンパイルして主プログラムシミュレーションをしている。
文字列に空白,括弧,アポストロフィ(')またはダブルコーテーション(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- COVERAGEオペランドによってカバレージ情報を蓄積する翻訳単位は,コンパイル時に-CVInfコンパイラオプションを指定します。
プログラムの中断時に,実行を再開する位置を変更します。
- 形式
![[図データ]](FIGURE/TD050208.GIF)
- STATEMENT(文番号)・PARAGRAPH(手続き名)
プログラムを再開させるときに,再開させる文または手続き名を指定します。
- 注意事項
- STATEMENTオペランド,PARAGRAPHオペランドは,中断しているソース要素の文または手続き名を指定します。宣言手続きで中断しているときは,その宣言手続きの中の文または手続きを指定します。宣言手続きの外で中断しているときは,宣言手続きの外の文または手続き名を指定します。
- STATEMENTオペランドにENTRY文の文番号は指定できません。
実行中のプログラムを強制的に終了します。
- 形式
![[図データ]](FIGURE/TD050209.GIF)
(9) SET TRACE/RESET TRACE(トレース表示の開始と中止)
プログラムの実行を追跡し,指定した単位で通過点を表示します。
- 形式
![[図データ]](FIGURE/TD050210.GIF)
- PROCEDURE | PARAGRAPH | STATEMENT
表示単位を指定します。
PROCEDURE:ソース単位の入口,出口を表示します。
PARAGRAPH:ソース単位の入口,出口および手続き名を表示します。
STATEMENT:ソース単位の入口,出口,手続き名および文を表示します。
- INTERFACE
入口では引数を表示し,出口では終了コードを表示します。
- FROMSTATEMENT(文番号指定)|FROMPARAGRAPH(手続き名指定)
表示を開始する位置を指定します。
- TOSTATEMENT(文番号指定)|TOPARAGRAPH(手続き名指定)
表示を終了する位置を指定します。
- TOSTEP(ステップ数)
表示を終了するステップ数を指定します。最初に表示したときのステップ数を1とします。指定できる範囲は,1〜2,147,483,647の整数です。
- PRINT
SET PRINTコマンドで指定した出力先に結果を表示します。
SET PRINTコマンドについては,「(34) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。
- 注意事項
- プログラムを再開始した場合,FROMSTATEMENTおよびFROMPARAGRAPHオペランドの指定がある場合はオペランドで指定した位置を通過したときに表示が開始されます。指定がない場合は,プログラム開始時に表示が開始されます。
- FROMSTATEMENTオペランドの文番号指定に該当する文または手続き名がない場合は,指定した文番号以降の最も近い文または手続き名を仮定します。
また,TOSTATEMENTオペランドを指定した文番号に該当する文または手続き名がない場合は,指定した文番号以前の最も近い文または手続き名を仮定します。
- FROMSTATEMENTおよびFROMPARAGRAPHオペランドとTOSTATEMENTおよびTOPARAGRAPHオペランドの指定がある場合は,開始する位置と終了する位置に同じ位置は指定できません。
SET TRACEコマンドで開始したトレース表示を中止します。
- 形式
![[図データ]](FIGURE/TD050211.GIF)
(10) SET FLOW/RESET FLOW(フロー情報の蓄積開始と終了)
フロー情報は,プログラムの実行時に通過した文の実行経路です。SET FLOWコマンドで,フロー情報の蓄積を開始します。蓄積したフロー情報は,DISPLAY FLOWコマンドで表示できます。また,バッチモードでは,実行時エラーが発生したときに,フロー情報を表示します。
- 形式
![[図データ]](FIGURE/TD050212.GIF)
- PROCEDURE | PARAGRAPH | STATEMENT
蓄積する通過点の単位を指定します。
PROCEDURE:ソース単位の入口,出口の情報を蓄積します。
PARAGRAPH:ソース単位の入口,出口と手続き名の情報を蓄積します。
STATEMENT:ソース単位の入口,出口と手続き名および文の情報を蓄積します。
- STACK(蓄積数)
蓄積する通過点の数を指定します。指定できる数は1〜500の整数で,省略時は99が仮定されます。
フロー情報の蓄積を中止します。
- 形式
![[図データ]](FIGURE/TD050213.GIF)
蓄積されているフロー情報を表示します。フロー情報とは,プログラムの実行経路を示す通過点の情報です。フロー情報は,最後に通過した文から,プログラムの実行順と逆の順序に表示されます。
- 形式
![[図データ]](FIGURE/TD050214.GIF)
- 表示例
- ソース要素の表示形式については,「2.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 <飲み物管理/飲み物管理>
<<<<<
プログラムが中断している現在の位置を表示します。
- 形式
![[図データ]](FIGURE/TD950060.GIF)
- 使用例と表示形式
- 使用例1
- マルチスレッドプログラムのプログラムPROGRAM_Aの入口で中断しています。
DISPLAY POINT
![[図データ]](FIGURE/TD950070.GIF)
- 使用例2
- プログラムPROGRAM_Bの内部プログラムSUB1の1600行の手続き名P1で中断しています。
DISPLAY POINT
![[図データ]](FIGURE/TD950080.GIF)
DISPLAY OBJECTコマンドは,オブジェクト参照データ項目または既定義オブジェクトSELF,EXCEPTION-OBJECTの指定によって,その参照するオブジェクトの次の情報を表示します。
- オブジェクト参照の値
- クラス名
- インスタンスオブジェクト・ファクトリオブジェクトの種別
- データの値
DISPLAY FACTORYコマンドは,クラス名の指定によって,ファクトリオブジェクトの次の情報を表示します。
- 形式
![[図データ]](FIGURE/TD050320.GIF)
- データ名指定
オブジェクトを参照するオブジェクト参照データ項目を指定します。
- 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コマンドについては,「(34) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)」の「(a) SET PRINT(テスト結果蓄積先の設定)」を参照してください。
- 形式
![[図データ]](FIGURE/TD050330.GIF)
- クラス名指定2
ファクトリオブジェクトのクラス名を指定します。
- #>
参照するオブジェクトの特定のデータ名を指すために指定します。
- クラス名指定3
データ名が定義されているクラス名を指定します。クラス名は,オブジェクトを作成したクラスまたはそのスーパクラスの名称です。
- データ名
表示するデータ名を指定します。
- #ALL
クラス名指定3が指定されないときは,オブジェクトを定義するクラスとそのスーパクラスに所属するデータをすべて表示します。クラス名指定3が指定されたときは,指定されたクラスに所属するデータをすべて表示します。ただしデータが定義されていないスーパクラスは何も表示されません。
- ATTRIBUTE | HEX | ALLTYPE
データの表示形式を指定します。
・ATTRIBUTE:データ名の属性で表示します。
・HEX:16進で表示します。
・ALLTYPE:ATTRIBUTE,HEXの両方の形式で表示します。
- GROUP | ELEMENT
集団項目の表示形式を指定します。
・GROUP:集団項目を英数字項目とみなし全体を先頭から表示します。
・ELEMENT:基本項目単位に表示します。
- PRINT
SET PRINTコマンドで指定した出力先に結果を表示します。
SET PRINTコマンドについては,「(34) 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コマンドはクラス名だけを表示します。
- 使用例と表示形式
- 次のCOBOLプログラムのクラス定義に従って,TDコマンドの使用例を示します。
- クラスMILKは,クラスDRINKを継承します。
- 使用例1について,UNIX32の場合と,UNIX64の場合の使用例を示します。使用例2以降で,明記されていない場合については,UNIX32の場合だけを示します。
- UNIX32の場合とUNIX64の場合の相違は,16進表示個所でアドレスを表示している部分が8けたから16けたになっていることです。また,表示するデータによってはデータサイズが変更になるものもあります。変更になるデータについては,「9.1.2 UNIX64 COBOL2002固有の言語仕様」の「(1) アドレス系データを表現するデータ項目」を参照してください。
- クラス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
![[図データ]](FIGURE/TD050321.GIF)
- 使用例2
- 既定義オブジェクトSELFの値がクラスMILKから生成されたインスタンスオブジェクトを参照するとき,クラスMILKのスーパクラスDRINKで定義されたデータ名O-DATA01を属性と16進で表示します。
DISPLAY OBJECT (SELF #> #CLASS(DRINK) O-DATA01) ALLTYPE
![[図データ]](FIGURE/TD050322.GIF)
- 使用例3
- 既定義オブジェクトSELFの値が,クラスMILKから生成されたインスタンスオブジェクトを参照するとき,クラス名を指定しないで,データ名O-DATA01を属性と16進で表示します。
DISPLAY OBJECT (SELF #> O-DATA01) ALLTYPE
![[図データ]](FIGURE/TD050323.GIF)
![[図データ]](FIGURE/TD050334.GIF)
![[図データ]](FIGURE/TD05032A.GIF)
![[図データ]](FIGURE/TD050332.GIF)
- 使用例4
- 既定義オブジェクトSELFの値が,クラスMILKから生成されたファクトリオブジェクトを参照するとき,クラスMILKのスーパクラスDRINKのすべてのファクトリデータを,属性と16進で表示します。
DISPLAY OBJECT (SELF #> #CLASS(DRINK) #ALL) ALLTYPE
![[図データ]](FIGURE/TD050324.GIF)
- 使用例5
- オブジェクト参照データ項目A-DRINKの値が,クラスMILKから生成されたファクトリオブジェクトを参照するとき,オブジェクトのすべてのファクトリデータを,属性で表示します。
DISPLAY OBJECT (A-DRINK #> #ALL) ATTRIBUTE
![[図データ]](FIGURE/TD050325.GIF)
- 使用例6
- クラス名MILKを指定して,ファクトリオブジェクトのスーパクラスDRINKのデータ名F-DATA01を属性と16進で表示します。
DISPLAY FACTORY (#CLASS(MILK) #> #CLASS(DRINK) F-DATA01) ALLTYPE
![[図データ]](FIGURE/TD050326.GIF)
- 使用例7
- クラス名MILKを指定して,ファクトリオブジェクトのデータ名F-DATA01を属性で表示します。
- ファクトリオブジェクトのスーパクラス名は指定しないで,該当するデータ名をすべて表示します。
DISPLAY FACTORY (#CLASS(MILK) #> F-DATA01) ATTRIBUTE
![[図データ]](FIGURE/TD050327.GIF)
- 使用例8
- クラス名MILKを指定して,ファクトリオブジェクトのスーパクラスDRINKのすべてのデータを属性と16進で表示します。
DISPLAY FACTORY (#CLASS(MILK) #> #CLASS(DRINK) #ALL) ALLTYPE
![[図データ]](FIGURE/TD050328.GIF)
- 使用例9
- オブジェクト参照データ項目B-DRINKがクラスMILKのインスタンスオブジェクトを参照するとき,オブジェクト参照の値,クラス名,オブジェクトの種別を表示します。
DISPLAY OBJECT (B-DRINK)
![[図データ]](FIGURE/TD050329.GIF)
データに値を代入します。
- 形式
![[図データ]](FIGURE/TD050360.GIF)
- DATA(データ名指定1)
値が代入されるデータ名を指定します。
- VALUE(データ名指定2)
代入する値を持つデータ名を指定します。
- VALUE(定数)
代入する定数を指定します。
- 注意事項
- データ名指定には,添字の範囲指定はできません。
- カウンタ変数を指定できるのは,データ名指定2だけです。
条件が成立したときは,ELSEの前のTDコマンド群を実行します。条件が成立しないときは,ELSEのあとのTDコマンド群を実行します。
- 形式
![[図データ]](FIGURE/TD050380.GIF)
- 使用例
- 文番号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
(17) ALLOCATE AREA/FREE AREA(領域の確保と解放)(AIX(32),AIX(64),Solaris(SPARC)で有効)
領域を確保して,アドレス名にアドレスを設定します。
- 形式
![[図データ]](FIGURE/TD050390.GIF)
- AREA(データ名指定)
アドレス名を指定します。指定されたアドレス名に,確保した領域のアドレスを設定します。
- 注意事項
- マルチスレッドプログラムでは使用できません。
- 確保した領域は,X'00'で初期化されます。
- 確保した領域は,次の場合に解放されます。
・FREE AREAコマンドを実行したとき。
・プログラムの実行が終了したとき。
- 共用ライブラリファイルのプログラムでこのコマンドを使用する場合は,リンク時に-lcbl2ktsオプションを指定する必要があります。
アドレス名の示す領域を解放します。
- 形式
![[図データ]](FIGURE/TD050395.GIF)
- AREA(データ名指定)
確保した領域を解放するアドレス名を指定します。
- 注意事項
- マルチスレッドプログラムでは使用できません。
- ALLOCATE AREAコマンドで確保された領域以外は解放できません。
- 領域の解放後,アドレス名にZEROが設定されます。
主プログラムシミュレーションで実行する手続きを指定します。詳細については,「2.2.7 プログラムの単体テスト」の「(1) 主プログラムシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050400.GIF)
- MAIN(プログラム指定)
主プログラムから呼び出される副プログラムの入口名を指定します。
- 入口名
ENTRY文で指定される入口点の名前を指定します。
- MESSAGE | NOMESSAGE
シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。
- TDコマンド群
テストデバッグ対象のプログラムへ渡すインタフェースを設定する手続きをTDコマンドで指定します。
副プログラムシミュレーションで実行する手続きを指定します。詳細については,「2.2.7 プログラムの単体テスト」の「(2) 副プログラムシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050410.GIF)
- SUB(プログラム指定)
シミュレーション対象とするプログラム定義の名前を指定します。
- 入口名
ENTRY文で指定される入口点の名前を指定します。
- USING(記号名〔, … 〕 )
CALL文のUSINGで指定したデータ項目をシミュレーションの手続きで参照するための記号名を指定します。USINGで指定したデータ項目の順番とUSINGオペランドに指定した記号名の順番が対応します。
- RETURNING(記号名)
シミュレーション手続きでRETURNINGに値を設定するための記号名を指定します。
- COUNTER(カウンタ変数)
カウンタ変数は,プログラムの開始時に0が設定され,シミュレーションが実行されるたびに1ずつ値が増加します。
- MESSAGE | NOMESSAGE
シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。
- DEFINE 〔 記号名構造定義指定 … 〕 ENDDEFINE
USINGまたはRETURNINGオペランドで指定した記号名に対応するデータ名が集団項目のとき,集団項目に所属するデータ名を指定します。詳細については,「(25) レベル番号(記号名構造指定)」を参照してください。
- 繰り返し指定,TDコマンド群
プログラムの呼び出しをシミュレーションで実行する手続きをTDコマンドで指定します。
繰り返し指定の詳細については,「(24) REPEAT(繰り返し指定)」を参照してください。
ファイルのシミュレーションで実行する手続きを指定します。詳細については,「2.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050420.GIF)
- FILE(ファイル名指定)
シミュレーション対象とするファイル名を指定します。
- OPENMODE(INPUT | OUTPUT | IO | EXTEND)
ファイルのオープンモードを指定します。
- RECORD(記号名〔, … 〕 )
シミュレーション手続き中で使用する記号名を定義します。記号名は,該当するファイルのレコード名定義に対応します。
- COUNTER(カウンタ変数)
カウンタ変数は,プログラムの開始時に0が設定され,シミュレーションが実行されるたびに1ずつ値が増加します。
- MESSAGE | NOMESSAGE
シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。
- DEFINE 〔 記号名構造定義指定 … 〕 ENDDEFINE
RECORDオペランドで指定した記号名に対応するデータ名が集団項目のとき,集団項目に所属するデータ名を指定します。詳細については,「(25) レベル番号(記号名構造指定)」を参照してください。
- 入出力文選択指定
入出力文で実行する手続きをTDコマンドで指定します。詳細については,「(21) SELECT ACTION(入出力文選択指定)」を参照してください。
- 繰り返し指定,TDコマンド群
入出力文で実行する手続きをTDコマンドで指定します。
繰り返し指定の詳細については,「(24) REPEAT(繰り返し指定)」を参照してください。
擬似実行する入出力文に対応させて,ファイルシミュレーションの手続きを実行させます。ファイルシミュレーションについては,「2.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050430.GIF)
- ACTION(READ | WRITE | REWRITE | START | DELETE)
対象とする入出力文を指定します。
- 繰り返し指定・TDコマンド群
指定した入出力文で実行するシミュレーション手続きを指定します。
繰り返し指定の詳細については,「(24) REPEAT(繰り返し指定)」を参照してください。
入出力条件を擬似的に発生させます。このとき,入出力状態に値を設定します。ファイルシミュレーションの手続きにだけ指定できます。
ファイルシミュレーションについては,「2.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050440.GIF)
- 注意事項
- GO ENDコマンド実行後のプログラムの制御は,次のような関係となります。
AT END指定 |
USE指定あり |
USE指定なし |
あり |
AT END指定の無条件文に制御が移る |
AT END指定の無条件文に制御が移る |
なし |
USE手続きが実行される |
入出力文の終わりに制御が移る |
- GO INVALIDコマンド実行後のプログラムの制御は,次のような関係となります。
INVALID KEY指定 |
USE指定あり |
USE指定なし |
あり |
INVALID KEY指定の無条件文に制御が移る |
INVALID KEY指定の無条件文に制御が移る |
なし |
USE手続きが実行される |
入出力文の終わりに制御が移る |
- GO EOPコマンド実行後のプログラムの制御は,次のような関係となります。
END-OF-PAGE指定 |
USE指定あり |
USE指定なし |
あり |
END-OF-PAGE指定の無条件文に制御が移る |
END-OF-PAGE指定の無条件文に制御が移る |
なし |
入出力文の終わりに制御が移る |
入出力文の終わりに制御が移る |
- GO ERRORコマンド実行後のプログラムの制御は,次のような関係となります。
USE指定あり |
USE指定なし |
USE手続きが実行される |
入出力文の終わりに制御が移る |
DCシミュレーションを,TDコマンドで手続きを設定して実行させます。詳細については,「2.2.7 プログラムの単体テスト」の「(5) DCシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050470.GIF)
![[図データ]](FIGURE/TD050480.GIF)
- DC(操作文種別)
シミュレーションの対象とするDC文を指定します。
指定できる操作文は,COMMIT,DISABLE,ENABLE,RECEIVE,ROLLBACK,SEND文です。
- CDNAME(通信記述名)
シミュレーションの対象とする通信記述名を指定します。操作文種別と通信記述名の組み合わせでシミュレーション対象が決まります。
- COUNTER(カウンタ変数)
カウンタ変数は,プログラムの開始時に0が設定され,シミュレーションが実行されるたびに1ずつ値が増加します。
- MESSAGE | NOMESSAGE
シミュレーションの開始を知らせるメッセージを表示するかどうかを指定します。
- 繰り返し指定,TDコマンド群
DC文で実行する手続きをTDコマンドで指定します。
繰り返し指定の詳細については,「(24) REPEAT(繰り返し指定)」を参照してください。
- 注意事項
- マルチスレッドプログラムでは,使用できません。
次のシミュレーションで一度に実行する手続きと,繰り返す回数を指定します。
- 副プログラムシミュレーションで副プログラムが呼ばれる
- ファイルシミュレーション入出力文が実行される
- DCシミュレーションでDC文が実行される
ファイルシミュレーションについては,「2.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」を参照してください。
- 形式
![[図データ]](FIGURE/TD050460.GIF)
- TIMES(反復回数)
シミュレーションが実行されることによって,指定されたTDコマンド群を繰り返し実行する回数を指定します。指定できるのは1〜2,147,483,647の整数で,省略時は1が仮定されます。
- TDコマンド群
一度に実行するシミュレーション手続きを指定します。
次のオペランドで指定する記号名に対応するデータ名が集団項目のとき,集団項目に属するデータ名に対応する記号名を指定します。指定された記号名によって,集団項目に属するデータ名をシミュレーションの手続きで参照できます。
- ファイルシミュレーションのRECORDオペランド
- 副プログラムシミュレーションのUSINGオペランドおよびRETURNINGオペランド
- 形式
![[図データ]](FIGURE/TD050450.GIF)
- レベル番号
レベル番号を指定します。
- 記号名
集団項目に属するデータ名に対応させる記号名を指定します。
- 注意事項
- DEFINEオペランドとENDDEFINEオペランドの間でだけ指定できます。
- 対応するデータ名にTYPE句またはSAME AS句の指定がある場合,レベル番号は展開後の構造で指定します。
- レベル番号の01〜09の0は省略できます。
複数のテストケースをまとめて定義して,その中から実行するテストケースを指定します。
- 形式
![[図データ]](FIGURE/TD050500.GIF)
- CASEID(ケース識別子)
定義されたテストケースの中から,実行するテストケースを指定します。このオペランドを指定しなかったときは,TESTコマンドの中で定義されたすべてのテストケースを実行します。末尾に*を付けて指定すると,*より前の文字が一致するケース識別子を持つすべてのテストケースを実行します。
- テストケース
テストケースとして実行するTDコマンドを指定します。
テストケースの詳細については,「(27) CASE(テストケースの指定)」を参照してください。
- コマンド群
QUIT,#INCLUDE,#OPTIONコマンドが指定できます。
テストケースの手続きを設定します。
- 形式
![[図データ]](FIGURE/TD050510.GIF)
- ID(ケース識別子)
テストケースの名称をケース識別子として定義します。英字で始まる31文字以内の英数字文字列で指定します。
- TOSTEP(ステップ数)
プログラムの実行を開始してから終了するまでのステップ数を指定します。最初の文を実行したときのステップ数を1とします。
指定できる範囲は,1〜2,147,483,647の整数です。実行した文が指定された数に達すると,実行が打ち切られます。
- CONDITION(ケース選択条件〔AND … 〕)
テストケースを実行する条件を指定します。指定したすべての条件を満たしたときにテストケースが実行されます。
ケース選択条件は,次の条件式で指定します。
![[図データ]](FIGURE/TD050511.GIF)
ケース識別子は,先に実行したテストケースのケース識別子を指定します。#LASTCODEを指定した場合は,直前のテストケースが仮定されます。
ケースコードは,先行するテストケース内でASSIGN CASECODEコマンドを使用して設定した値です。
- TDコマンド群
テスト手続きをTDコマンドで指定します。
- 注意事項
- ステップ数は,スレッドに依存しないで,実行した文をカウントします。
テストケースの終了状態(ケースコード)を設定します。
- 形式
![[図データ]](FIGURE/TD050520.GIF)
- CASECODE(ケースコード)
指定できる範囲は,0〜2,147,483,647の整数です。
テストデバッグを終了します。
- 形式
![[図データ]](FIGURE/TD050530.GIF)
指定した文字を表示します。
- 形式
![[図データ]](FIGURE/TD050540.GIF)
- COMMENT(コメント文字列)
表示する文字列を指定します。文字列に空白,括弧,アポストロフィ(')またはダブルコーテーション(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- PRINT
SET PRINTコマンドで指定した出力先に結果を表示します。
(31) SET QUALIFICATION/RESET QUALIFICATION(翻訳単位・ソース要素の指定と解除)
テストデバッグの対象とする翻訳単位またはソース要素を変更します。SET QUALIFICATIONコマンドで翻訳単位指定をすると,その後の文番号に翻訳単位を指定したことになります。SET QUALIFICATIONコマンドでソース要素指定をすると,その後のソース要素指定ができるオペランドに指定したことになります。
- 形式
![[図データ]](FIGURE/TD050600.GIF)
- QUALIFICATION(翻訳単位指定)
仮定する翻訳単位を指定します。
- QUALIFICATION(ソース要素指定)
仮定するソース要素を指定します。
- 注意事項
- SET QUALIFICATIONコマンドは,プログラムの開始時および再開時に解除されます。また,プログラムの実行中止(STOPコマンド)でも解除されます。
- 翻訳単位指定は,文番号だけに有効です。その他にはソース要素指定をしなくてはなりません。
SET QUALIFICATIONコマンド以降,文番号以外も対象とする場合は,ソース要素指定を指定します。
翻訳単位指定またはソース要素指定を解除します。
- 形式
![[図データ]](FIGURE/TD050610.GIF)
指定したファイルからTDコマンドを入力します。
- 形式
![[図データ]](FIGURE/TD050670.GIF)
- INFILE(ファイル名)
TDコマンドを格納しているファイル名を指定します。ファイル名に空白,括弧,アポストロフィ(')または引用符(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- MESSAGE | NOMESSAGE
入力したTDコマンドを表示するかどうかを指定します。
- 注意事項
- #INCLUDEコマンドで指定したファイルの中に,再度同じファイル名を指定した#INCLUDEコマンドは記述できません。
- 大文字・小文字を区別するため,#OPTIONコマンドの指定がファイル名に効かないようにさせたいときは,文字列を指定します。指定方法については,「5.1 TDコマンドの指定方法」の「(4) 英大文字と英小文字,英数字文字と拡張文字を区別しての文字列の指定方法」を参照してください。
- ファイル名に,絶対パスの付かないファイル名を指定したときの,ファイルの検索方法は,「3.2.2 環境変数の指定」を参照してください。
- バッチモードのcbltd2kコマンドで-SyntaxOnlyオプションの指定の有無に関係なく,指定されたTDコマンド格納ファイルの取り込みをします。バッチモードのcbltd2kコマンドで-SyntaxOnlyオプションが指定されていた場合は,取り込んだTDコマンド格納ファイル内のTDコマンドの構文解析が行われます。
- ファイル名に正規表現を指定しても適用されません。
TDコマンドの解析方法を指定します。
- 形式
![[図データ]](FIGURE/TD050660.GIF)
- 下記の説明で,特殊文字とは次の文字です。
- + − * / = ¥ ' " ; . , ( ) < > & :
- 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 )
(34) SET PRINT/RESET PRINT(テスト結果蓄積先の設定と解除)
PRINTオペランドが指定されたTDコマンドによる実行結果の出力先を指定します。SET PRINTの指定がない場合,バッチモードでは結果出力ファイルへ,実行結果を出力します。
- 形式
![[図データ]](FIGURE/TD050620.GIF)
- OUTFILE(ファイル名)
実行結果を出力するファイル名を指定します。ファイル名に空白,括弧,アポストロフィ(')または引用符(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- 注意事項
- SET PRINTでファイルがオープンされ,RESET PRINTでファイルがクローズされます。ファイルがオープンされている間は,ほかのアプリケーションからの書き込みを行うと,ファイルのオープンでエラーとなります。
- 指定されたファイルがすでにある場合は,上書きとなります。
- SET PRINTコマンドによって出力先が指定されていた場合は,先に指定されたファイルをクローズしてから指定されたファイルをオープンします。
- すでにオープンされているファイルをファイル名に指定できません。したがって,SET LOGコマンドで指定されたファイルも指定できません。
- 大文字・小文字を区別するため,#OPTIONコマンドの指定がファイル名に効かないようにさせたいときは,文字列を指定します。指定方法については,「5.1 TDコマンドの指定方法」の「(4) 英大文字と英小文字,英数字文字と拡張文字を区別しての文字列の指定方法」を参照してください。
- ファイル名に正規表現を指定しても適用されません。
実行結果の出力先を戻します。
- 形式
![[図データ]](FIGURE/TD050630.GIF)
(35) SET LOG/RESET LOG(ログ出力ファイルの設定/解除)
ラインモードで端末に表示されるテストデバッグの実行結果をファイルへ出力します。
- 形式
![[図データ]](FIGURE/TD050640.GIF)
- OUTFILE(ファイル名)
実行結果を出力するファイル名を指定します。ファイル名に空白,括弧,アポストロフィ(')または引用符(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- 注意事項
- SET LOGでファイルがオープンされ,RESET LOGでファイルがクローズされます。ファイルがオープンされている間は,ほかのアプリケーションからの書き込みはできません。RESET LOG以外でも,初期化,テストデバッガの終了したときにファイルがクローズされます。
- 指定されたファイルがすでにある場合は,上書きとなります。
- SET LOGによって出力先が指定されていた場合は,先に指定されたファイルをクローズしてから指定されたファイルをオープンします。
- オープンされているファイルを,ファイル名に指定することはできません。したがって,SET PRINTコマンドで指定されたファイルも,指定できません。
- 大文字・小文字を区別するため,#OPTIONコマンドの指定がファイル名に効かないようにさせたいときは,文字列を指定します。指定方法については,「5.1 TDコマンドの指定方法」の「(4) 英大文字と英小文字,英数字文字と拡張文字を区別しての文字列の指定方法」を参照してください。
- ファイル名に正規表現を指定しても適用されません。
テストデバッガの実行結果を端末へ出力するように戻します。
- 形式
![[図データ]](FIGURE/TD050650.GIF)
プログラムのファイル管理記述項で指定した装置名にファイルを割り当てます。
- 形式
![[図データ]](FIGURE/TD950010.GIF)
- DEVICE(ファイル定義)
ファイル定義は,プログラムのファイル管理記述項のASSIGN句で定義している装置名の前に,CBL_またはCBLX_を付加して指定します。
- IOFILE(ファイル名)
プログラムで入出力をするファイル名を指定します。
- 注意事項
- ファイル定義に記述したハイフン(-)は,アンダーバー(_)と見なされます。
- ファイルの実体を割り当てないでOPEN文を実行すると,実行時エラーメッセージを表示して,プログラムの実行が中断されます。AIX(32),AIX(64),またはSolaris(SPARC)の場合,中断後に,ASSIGN DEVICEコマンドでファイルを割り当てたあと,ジャンプまたはジャンプ実行でOPEN文を再び実行させることによって,プログラムを続行できます。
- プログラムのSELECT句で割り当てた装置名に,ASSIGN DEVICEコマンドを使用すると,ASSIGN DEVICEコマンドのファイル定義で指定した装置名に置き換えられます。
- ファイル定義の長さの制限値は,CBL_またはCBLX_にCOBOL利用者語の制限値を足した値となります。
- ファイル名に正規表現を指定しても適用されません。
- XMAP3によるプリンタへの書式印刷機能を使用する場合,ファイル定義には外部装置名の前にCBLX_を付けて指定し,ファイル名には印刷サービス名称を指定します。
UNIXのコマンドを実行します。
- 形式
![[図データ]](FIGURE/TD950020.GIF)
- UNIXコマンド
実行するUNIXコマンドを指定します。
- オペランド
実行するUNIXコマンドのオペランドを指定します。
- 注意事項
- UNIXコマンドおよびオペランドの指定規則は,各UNIXコマンドに従います。
- SET LOGコマンドでTDコマンドの実行結果をファイルへ出力することを指定しても,UNIXコマンドの実行結果だけはログ出力ファイルへ出力されません。
- UNIXコマンドとオペランドの文字列に空白,括弧,アポストロフィ(')または引用符(")を使用する場合の指定方法については,「5.1 TDコマンドの指定方法」を参照してください。
- 使用例
!('ls -L > out.file')
- !コマンドは,子プロセスを生成してコマンドを実行します。そのため,子プロセスで実行されたcd,setenvなどのUNIXコマンドの実行結果は無効となります。
All Rights Reserved. Copyright (C) 2004, 2011, Hitachi, Ltd.