このセクションでは、基本動作要件を説明し、デバッガの適用計画の作成方法についての大まかなガイドラインを示します。
デバッガの使用は、Natural Security によって制御されます。
TEST
システムコマンドを禁止することによって、未認可の使用に対してデバッガを保護できます。このシステムコマンドは、デバッガを起動します。『Natural Security』ドキュメントの「Library Maintenance」セクションの「Command Restrictions」を参照してください。
デバッガの使用を禁止または制限できます。『Natural Security』ドキュメントの「Components of an Environment Profile」に説明があります。
デバッガは、現在の Natural システムファイルの現在のライブラリに格納されている、カタログ化オブジェクトの実行時にのみ呼び出されます。 RUN
コマンドを使用して、ワークエリアに含まれるソースコードを実行したときには、デバッガは呼び出されません。
効率的かつ正確にデバッグを行うには、ソースオブジェクトのソースコードが、カタログ化オブジェクトのコンパイル済みソースコードに対応している必要があります。これは、システムコマンド STOW
を使用すると保証できます。 ソースオブジェクトを、カタログした後に変更した場合は、参照先のステートメントまたは変数が変更または削除されたために、デバッグエントリ(ブレイクポイントまたはウォッチポイント)が正しく機能しない可能性があります。 ソースオブジェクトのタイムスタンプが、対応するカタログ化オブジェクトのタイムスタンプより古いことをデバッガが検出すると、次の警告が表示されます。「Time stamps of source and cataloged object do not match.
」
デバッガは、現在のライブラリまたはその steplib の 1 つに含まれる Natural オブジェクトをすべて調査します。 Natural システムライブラリ SYSLIB または SYSLIBS に格納された Natural オブジェクトは、デバッガにより調査されません。
デバッガは Natural バージョン 2.3 以上のオブジェクトにのみ適用できます。それより前のバージョンでカタログされた他の Natural オブジェクトには適用できません。
デバッガは、主にオンラインモードでの対話式動作を目的として設計されていますが、デバッガコマンドは、ブレイクポイントまたはウォッチポイントの設定などのバッチ実行に使用することもできます。
注意:
バッチ処理には制限があり、そのためにデバッガコマンドが拒否される場合があります。 例えば、デバッガは ++
コマンドおよび +4
コマンドをサポートしていません。
次に示すのは、デバッガのダイレクトコマンドをバッチモードで使用して、コール統計に関するレポートの生成と出力を行う例です。
//NATBATCH EXEC PGM=NATBAT42, // PARM=('INTENS=1,IM=D,CF=$,PRINT=((1-2),AM=STD)') //STEPLIB DD DISP=SHR,DSN=NATURAL.V2.TEST.NUCLEUS //CMPRINT DD SYSOUT=X //SYSOUT DD SYSOUT=X //CMPRT01 DD SYSOUT=X //CMSYNIN DD * LOGON DEBUGLIB TEST PROFILE ,,,,CMPRT01 ,,,,,,$K3 ,,$K3 TEST ON TEST SET XSTAT COUNT DEBUG2P TEST PRINT XSTAT FIN /*
デバッガを起動するには
Natural オブジェクトまたはアプリケーションのデバッグ環境を設定します。
Natural システムコマンド TEST
を入力して、デバッグメインメニューを呼び出します。
または
実行中のアプリケーション内で、端末コマンド %<TEST
を入力します。
デバッグメインメニューの機能を使用して、Natural オブジェクトまたはアプリケーションのデバッグエントリを指定します。
Debug environment maintenance
Spy maintenance
Breakpoint maintenance
Watchpoint maintenance
Call statistics maintenance
Statement execution statistics maintenance
Variable maintenance
List object source
デバッガを有効にします。
コマンドプロンプトでコマンド TEST ON
を入力します。
または
デバッグメインメニューでファンクションコード「T
」を入力します。
Natural オブジェクトまたはアプリケーションを実行します。
デバッガは、指定したデバッグエントリでプログラム実行を中断し、[Debug Break]ウィンドウを呼び出します。
エラー処理のためにデバッガを起動するには
セッション開始時に、プロファイルパラメータ DBGERR
を ON
に設定します。
『パラメータリファレンス』ドキュメントの「DBGERR - ランタイムエラー発生時のデバッガの自動起動」も参照してください。
または:
セッション中に、コマンドプロンプトでコマンド TEST ON
を入力するか、デバッグメンテナンスのメインメニューでファンクションコード「T
」を入力します。
Natural エラーが発生すると、デバッガが[Debug Break]ウィンドウを呼び出します。
「エラー処理」セクションも参照してください。
該当する各セクションで説明したように、デバッガのメンテナンス機能は、対応するメニューの名前フィールドまたはダイレクトコマンドで指定したオブジェクトを参照します。 オブジェクト名を指定しない場合、デバッガはデフォルトで、現在のオブジェクトの名前を使用します。これは、デバッグメインメニューの右上隅にある[Object]フィールドに表示されています。 デフォルトのオブジェクトを指定すると、ダイレクトコマンドおよびメニューオプションを使用してブレイクポイントまたはウォッチポイントを指定するときに、オブジェクト名を指定する必要がなくなります。 デフォルトオブジェクトを変更するには、「コマンドの概要と構文」セクションにあるコマンド SET
の構文を参照してください。