同時に複数のプログラムをデバッグしたい場合があるが
STRDBGコマンドで停止点を指定してもF12キーを押すと
元の画面に戻ってしまうだけでもう一方のプログラムの停止点を
指定することができない。
どうすれば複数のプログラムの停止点(=ブレーク・ポイント)を
同時に指定することができるのだろうか?
_
(1) 最初にSTRDBGコマンドで複数のプログラムのデバッグを
指定する。
[例]
デバッグ開始 (STRDBG) 選択項目を入力して,実行キーを押してください。 プログラム . . . . . . . . . . > SELRCDCL 名前 , *NONE ライブラリー . . . . . . . . . . . > V.PANEL 名前 , *LIBL, *CURLIB 値の続きは+ > PNLFLDCL > V.PANEL 省略時のプログラム . . . . . . *PGM 名前 , *PGM, *NONE 最大 トレース・ステートメント 数 . . . . . 200 数値 トレース・データ満杯時の処理 *STOPTRC *STOPTRC, *WRAP 実動ファイルの更新 . . . . . . > *YES *NO, *YES OPM ソース・レベル・デバッグ . > *YES *NO, *YES サービス・プログラム . . . . . *NONE 名前 , *NONE ライブラリー . . . . . . . . . . . 名前 , *LIBL, *CURLIB 値の続きは+
[解説]
ここでは SELRCDCL と PNLFLDCL というふたつのプログラムの
デバッグを指定している。
(2) デバッグのモジュール・ソースが表示される
モジュール・ソースの表示 PROGRAM: SELRCDCL LIBRARY: V.PANEL 1 PGM PARM(&RCVPRM) 2 /*-------------------------------------------------------------------* 3 /* SELRCDCL : SELFLD: フィールドの選択および順序付けを表示する * 4 /* VS : ATHDSPCL * 5 /* この CLP は WRKPNL のフィールドの選択でフィールド毎に * 6 /* 呼び出されて実行されます。 * 7 /* 画面処理後のメッセージもここで出力します。 * 8 /* 2020/01/16 作成 * 9 /* * 10 /* ラCOMPILEン * 11 /* CRTBNDCL V.PANEL/SELRCDCL SRCFILE(R610SRC/QCLSRC) * 12 /* DFTACTGRP(*NO) ACTGRP(*NEW) AUT(*ALL) DBGVIEW(*SOURCE) * 13 /* * 14 /* PNLFLDCL : フィールドの選択および順序付け出口プログラム * 15 /* VIWCHK : 複数ビューのチェック * 続く ... デバッグ F5= 最新表示 F9=コマンド 複写 F14=モジュール・リスト の処理 F15=ビュー の選択 F16= 検索の反復 F21=コマンド 入力 F22=ステップ・イン F24=キー の続き
[解説]
F14=モジュール・リストの表示を注目。F14キーを押すと次のように
複数のモジュールが表示される。
(3) モジュール・リストの表示
モジュール・リストの処理 システム : Sxxxxxx オプションを入力して,実行キーを押してください。 1= プログラムの追加 4= プログラムの除去 5= モジュール・ソースの表示 8= モジュール停止点の処理 OPT PROGRAM/MODULE LIBRARY TYPE *LIBL *PGM PNLFLDCL V.PANEL *PGM SELRCDCL V.PANEL *PGM 選択
[解説]
このようにモジュール・リストが表示されたら「5= モジュール・ソースの表示」を
選択するとソースが表示されて停止点を指定することができる。
または最初に停止点を指定した後でコマンド入力画面にF12キーで戻ったら
(4) モジュール・リストの表示
- DSPMODSRC
と打鍵して実行キーを押すと前述のモジュール・リストを表示することができる。
– 複数のプログラムを同時にデバッグする方法を覚えるとデバッグ効率は格段と
高くなる。
途中まであるプログラムのデバッグを続けていて必要なプレーク・ポイントに到達したら
そこからF14=モジュール・ソースの表示を行って別のプログラムのデバッグを開始するという
離れ業をやってのけることができる。
原因が不明な難解な問題の解決に複数のプログラムのデバッグ方法を知っておくと
解決の道が早まる。
_