以下を使って、条件付きジョブ・ブレークポイントを設定または除去することができます。
条件付きジョブ・ブレークポイントを設定または除去できる 1 つの方法は、 「モジュール・ブレークポイントの処理」画面によるものです。「モジュール・ブレークポイントの処理」画面には、 「モジュール・ソースの表示」画面で F13 (モジュール・ブレークポイントの処理) キーを押すことによってアクセスします。 この画面は、条件付きまたは無条件ジョブ・ブレークポイントの追加、 または除去のいずれかを許可するオプションのリストを提供します。 画面の例を 図 102 に示します。
ジョブ・ブレークポイントを条件付きにするには、条件 フィールドに 条件式を指定します。ジョブ・ブレークポイントを設定しようとする行が 実行可能ステートメントではない場合、ブレークポイントは次の実行可能ステートメントに 設定されます。
スレッド列を表示するには、実行キー を押す前にスレッド・ フィールドに *JOB と入力します。
すべてのジョブ・ブレークポイントを指定し終えたら、プログラムを 呼び出します。「モジュール・ソースの表示」画面から F21 (コマンド入力) を使用して コマンド行でプログラム・オブジェクトを呼び出すか、あるいはこの画面を出た後で プログラムを呼び出すことができます。
条件付きジョブ・ブレークポイントが設定されたステートメントに達すると 、ジョブ・ブレークポイントに関連した条件式が、そのステートメントが実行される 前に評価されます。結果が偽の場合には、プログラム・オブジェクトは実行し続けます。 結果が真の場合には、プログラム・オブジェクトが停止し、 「モジュール・ソースの表示」画面が表示されます。 この時点でフィールドを評価し、より多くのブレークポイントを設定し、任意のデバッグ・コマンドを実行することができます。
条件付きブレークポイントを設定および除去するもう 1 つの 方法は、BREAK および CLEAR デバッグ・コマンドの使用です。
BREAK デバッグ・コマンドを使用して条件付きブレークポイントを設定するためには、 デバッグ・コマンド行に、
BREAK line-number WHEN expression
と入力します。 変数の line-number は、ブレークポイントを設定したいモジュール・オブジェクトの 現在表示されているビューの行番号で、expression はブレークポイントが出てくる時に 評価される条件付き式です。 条件式ブレークポイントに対しサポートされている比較演算子は、 このセクションの始めに注記されています。
非数字の条件式ブレークポイントの式では、比較が起こる前に、 より短い式が暗黙にブランクで埋め込まれます。 この暗黙の埋め込みは国別言語分類順序 (NLSS) 変換の前に起こります。NLSS の 詳細については、国別言語分類順序 (NLSS)を参照してください。
CLEAR デバッグ・コマンドを使用して条件付きブレークポイントを除去するためには、デバッグ・コマンド行に
CLEAR line-number
と入力します。変数の line-number は、ブレークポイントを除去したいモジュール・オブジェクトが現在表示されているビューの行番号です。
この例では、F13 (モジュール停止点の処理) を使って条件付きジョブ・ブレークポイントを 設定します。
図 102 は、条件付きブレークポイントの追加後の「モジュール停止点の処理」 画面を示します。
モジュール停止点の処理 システム : TORASD80 プログラム . . : DEBUGEX ライブラリー . : MYLIB モジュール . : DBGEX タイプ . . . . : *PGM オプションを入力して,実行キーを押してください。 1= 追加 4= 消去 OPT 行 条件 127 *in02='1' 88 102 終わり コマンド ===> _________________________________________________________________________ F3= 終了 F4=プロンプト F5= 最新表示 F9=コマンド複写 F12= 取消し 停止点が行 127 に追加されました。
条件付きジョブ・ブレークポイントが行 127 に設定されます。式はステートメントの実行前に評価されます。 結果が真の場合には (例では *IN02='1' の場合)、プログラムが 停止し、「モジュール・ソースの表示」画面が表示されます。 結果が偽の場合には、プログラムは実行し続けます。
既存のブレークポイントは常に、同じ位置に入力された新しいブレークポイントによって置き換えら れます。
この例では、日付フィールド BigDate に特定の値がある時にプログラムが 停止させたいものとします。 BREAK コマンドを使って条件付きジョブ・ブレークポイントを 指定するには、次のようにします。
break 128 when BigDate='1994-09-30'条件付きジョブ・ブレークポイントが行 128 に設定されます。
モジュール・ソースの表示
PROGRAM: DEBUGEX LIBRARY: MYLIB MODULE: DBGEX
122
123 *---------------------------------------------------------------
124 * 次の SETON 命令後に、*IN02 = '1'.
125 *---------------------------------------------------------------
126 C SETON
127 C IF *IN02
128 C MOVE '1994-09-30' BigDate
129 C ENDIF
130
131 *---------------------------------------------------------------
132 * ARRY の 2 番目のセルに新しい値を入れる。
133 *---------------------------------------------------------------
134 C MOVE 4 Arry
135
136 *---------------------------------------------------------------
続く...
デバッグ. . break 128 when BigDate='1994-09-30'________________________________
_______________________________________________________________________________
F3=終了プログラム F6=停止点の追加/消去 F10=ステップ F11=変数の表示
F12=再開 F17=ウォッチ変数 F18=ウォッチの処理 F24=キーの続き
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.