ブレイクポイントにより、Natural オブジェクトの実行が特定のステートメント行で中断されます。 このセクションでは、ブレイクポイントを設定する方法とタイミングについて説明します。 ここで説明するメンテナンス機能は、オブジェクトソースから、
機能を使用して呼び出せます。Breakpoint Maintenance を呼び出すには
デバッグメインメニューでファンクションコード「B
」を入力します。
または:
次のダイレクトコマンドを入力します。
BM
[Breakpoint Maintenance]メニューが表示されます。
このセクションでは、ブレイクポイントのメンテナンスの使用条件、[Breakpoint Maintenance]メニューに用意されている機能、およびブレイクポイント画面に含まれるフィールドと列について説明します。
ブレイクポイントは、処理する Natural オブジェクトの名前、およびそのオブジェクトのソースコード中でブレイクポイントが実行される行番号を指定して設定します。
一度指定されたブレイクポイントは、削除されない限り、その Natural セッション全体にわたり、設定されたままとなります。
ブレイクポイントは、ソースコード中の特定の行番号を参照します。 したがって、ブレイクポイントの設定後にソースコードを変更すると、ブレイクポイントが誤ったステートメントに適用される結果となり、そのために、Natural オブジェクトが目的の位置で中断されなくなる可能性があります。 このプログラムループの問題は、これらのループ内にラベルを設定すると回避できます。 これらのラベルに設定されたブレイクポイントは、ステートメント行が挿入または削除されると、正しい行番号に調整されます。
ブレイクポイントの一意の識別子は、デバッガにより割り当てられたスパイ番号です。
ブレイクポイントは、コメント行、最初のステートメント行以外のステートメント行(1 つのステートメントが複数のプログラム行にわたる場合)、以下のステートメントのいずれかのみを含む行には設定できません。
AT BREAK OF
AT END OF DATA
AT END OF PAGE
AT START OF DATA
AT TOP OF PAGE
BEFORE BREAK
DECIDE
バージョン 4.1 より前の Natural バージョン でカタログされたオブジェクトの場合は、WHEN
節および VALUE
節を含む行にのみブレイクポイントを設定できます。 これらの制限は、Natural バージョン 4.1 以上でカタログされたオブジェクトには適用されません。
DEFINE SUBROUTINE
DEFINE WINDOW
FORMAT
IF NO RECORDS FOUND
ON ERROR
OPTIONS
Natural Optimizer Compiler でコンパイルされた行にブレイクポイントを設定できるかどうかは、OPTIONS
ステートメントの NODBG
オプションにより異なります。これについては、『Natural Optimizer Compiler』ドキュメントの「Switching on the Optimizer Compiler」で説明しています。
「テストモードのオンとオフの切り替え」を参照してください。
指定したブレイクポイントの現在の状態をアクティブに設定するには
[Breakpoint Maintenance]メニューでファンクションコード「A
」および、オブジェクト名と行番号のいずれかまたは両方を入力します。
または:
ダイレクトコマンド ACTIVATE
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
オブジェクト名も行番号も指定しない場合は、すべてのブレイクポイントが有効になります。
指定したブレイクポイントの現在の状態を非アクティブに設定するには
[Breakpoint Maintenance]メニューでファンクションコード「B
」および、オブジェクト名と行番号のいずれかまたは両方を入力します。
または:
ダイレクトコマンド DEACTIVATE
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
オブジェクト名も行番号も指定しない場合は、すべてのブレイクポイントが無効になります。
指定したブレイクポイントを削除するには
[Breakpoint Maintenance]メニューでファンクションコード「C
」および、オブジェクト名と行番号のいずれかまたは両方を入力します。
または:
ダイレクトコマンド DELETE
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
オブジェクト名も行番号も指定しない場合は、すべてのブレイクポイントが削除されます。
ブレイクポイントを表示するには
[Breakpoint Maintenance]メニューでファンクションコード「D
」、オブジェクト名、および行番号を入力します。
オブジェクト名を入力しない場合は、デフォルトオブジェクト(指定されている場合)が使用されます。
または:
ダイレクトコマンド DISPLAY
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
指定されたオブジェクトと行番号にブレイクポイントが設定されている場合は、下の例のような、すべてのブレイクポイントの定義を示す[Display Breakpoint]画面が表示されます。
11:16:12 ***** NATURAL TEST UTILITIES ***** 2006-02-07 Test Mode ON - Display Breakpoint - Object Spy number .............. 1 Initial state ........... active Current state .. active Breakpoint name ......... BRK0130 DBID/FNR ....... 10/32 Object name ............. DEBPGM1 Library ........ SAG Line number ............. 0130 Label ................... Skips before execution .. 0 Max number executions ... 0 Number of activations ... 0 Error in definition ..... - none - Commands ... BREAK Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Last Mod Flip Canc |
一意のブレイクポイントがまったく見つからない場合は、次に説明する[List Breakpoints]画面が表示されます。
[Display Breakpoint]画面のフィールドについては、「ブレイクポイント画面のフィールドと列」で説明しています。
ブレイクポイントのリストを表示するには
[Breakpoint Maintenance]メニューでファンクションコード「D
」、オブジェクト名、または行番号を入力します。 ABC*
のように、アスタリスク(*)記号を使用すると、一定の範囲のオブジェクト名を指定できます。 アスタリスク(*)のみを入力すると、すべてのオブジェクト名が選択されます。 オブジェクト名を入力しない場合は、デフォルトオブジェクト(指定されている場合)が使用されます。
または:
ダイレクトコマンド DISPLAY
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
下の例のような、指定されたオブジェクトまたは行番号に設定されたすべてのブレイクポイントのリストを含む[List Breakpoints]画面が表示されます。
11:41:56 ***** NATURAL TEST UTILITIES ***** 2006-01-30 Test Mode ON - List Breakpoints - Object All Co No. BP Name Library Object Line DBID FNR Stat Skips Execs Count E *___________ *_______ *_______ 0000 I C __ 1 BRK0130 SAG DEBPGM1 0130 10 32 A A 0 0 0 __ 2 BRKPGM3-END SAG DEBPGM3 END 10 32 A A 0 0 0 __ 3 BRKPGM3-300 SAG DEBPGM3 0300 10 32 A A 0 0 0 __ 4 BRKPGM2-400 SAG DEBPGM2 0400 10 32 A A 0 0 0 __ 5 BRKPGM2-430 SAG DEBPGM2 0430 10 32 A A 0 0 0 __ 6 BRKPGM1-END SAG DEBPGM1 END 10 32 A A 0 0 0 __ 7 BRKPGM1-ALL SAG DEBPGM1 ALL 10 32 A A 0 0 0 Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Last Flip - + Canc |
このリストは、[No.]列のスパイ番号によって昇順で ソートされます。
[List Breakpoints]画面に含まれる列、およびリストの項目に対して実行できる行コマンドの詳細については、「ブレイクポイント画面のフィールドと列」を参照してください。
ブレイクポイントを変更するには
[Breakpoint Maintenance]メニューでファンクションコード「M
」、オブジェクト名、および行番号を入力します。 オブジェクト名を入力しない場合は、デフォルトオブジェクト(指定されている場合)が使用されます。
または:
ダイレクトコマンド MODIFY
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
一意のブレイクポイントが指定されている場合は[Modify Breakpoint]画面が表示され、ここでフィールドのエントリを変更できます。 [Modify Breakpoint]画面のフィールドについては、「ブレイクポイント画面のフィールドと列」で説明しています。
一意のブレイクポイントがまったく見つからない場合は、[List Breakpoints]画面(「ブレイクポイントの表示」を参照)が表示されます。
ブレイクポイントを定義し終わったら、PF3 キー(Exit)または PF5 キー(Save)を押して、変更を保存します。 デバッグエントリの有効性チェックの詳細については、「メンテナンスと検証」も参照してください。 PF12 キー(Canc)を押した場合、ブレイクポイント定義は変更されないままとなります。
セッションのブレイクポイントを追加するには
[Breakpoint Maintenance]メニューでファンクションコード「S
」および、オブジェクト名と行番号のいずれかまたは両方を入力します。
または:
ダイレクトコマンド SET
を使用します。その構文については、「コマンドの概要と構文」セクションで説明しています。
オブジェクト名ではなく、有効な行番号を指定した場合は、デフォルトオブジェクト(「デバッガの開始」セクションを参照)の名前が使用されます。 デフォルトオブジェクトが指定されていない場合は、現在のライブラリで使用可能なすべてのオブジェクトを示す選択ウィンドウが表示されます。
オブジェクト名と行番号を正しく指定した場合は通常、ブレイクポイントが設定され、直ちに確認されます。
ただし、コピーコードに設定されたブレイクポイントは、そのコピーコードを含むプログラムの実行時にのみ有効となります。 デバッグエントリの有効性チェックの詳細については、「メンテナンスと検証」も参照してください。
ブレイクポイントがデフォルトコマンド(BREAK
)を受け取るときは、その初期状態と現在の状態がアクティブに設定されており、実行に関する制限は指定されていません。 ブレイクポイントの設定時にコマンド BREAK
を削除し、ダイアログを表示するコマンドを何も指定しないと、プログラムの中断時にデバッガが制御を受け取れなくなります。
次の表では、[Display Breakpoint]画面または[Modify Breakpoint]画面のフィールドと、[List Breakpoints]画面の列について説明します。
フィールド | 列 | 説明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Test Mode | テストモードが ON と OFF のいずれに設定されているかを示します。
|
|||||||||||||||
Object | 指定されている場合、デフォルトオブジェクトの名前を示します(「デバッガの開始」を参照)。 | |||||||||||||||
Co | これは入力フィールドであり、次のいずれかの行コマンドを指定できます。
|
|||||||||||||||
Spy number | No. | ブレイクポイントの設定時にデバッガによって割り当てられる一意の数値。 | ||||||||||||||
Initial state | Stat I | ブレイクポイントの初期の状態と現在の状態として、アクティブ(A )または非アクティブ(I )を指定します。
|
||||||||||||||
Current state | Stat C | |||||||||||||||
Breakpoint name | BP Name | ブレイクポイントの名前。
有効な値は 1~12 文字です。 ブレイクポイントのデフォルト名は、オブジェクト名と行番号で構成されます。 |
||||||||||||||
DBID/FNR | DBID | Natural オブジェクトが保存されているシステムファイルのデータベース ID(DBID)とファイル番号(FNR)。 | ||||||||||||||
FNR | ||||||||||||||||
Library | Library | オブジェクトを含むライブラリの名前。 | ||||||||||||||
Object name | Object | 現在のライブラリまたは STEPLIB のいずれかで使用できるオブジェクトの名前。 | ||||||||||||||
Line number | Line | オブジェクトのソースコード中のステートメントの行番号。 上記の「使用条件」も参照してください。
|
||||||||||||||
Label | オブジェクトのソースコード中で、処理ループを定義するステートメントに対して以前に設定されたラベルを参照します。上記の「使用条件」も参照してください。
有効な値は 1~32 文字です。 |
|||||||||||||||
Skips before execution | Skips | ブレイクポイントが、対応するステートメント行が特定の回数実行されるまでは実行されないようにします。
有効な値は 0(デフォルト)~32767 です。 |
||||||||||||||
Max number executions | Execs | ゼロ(0)より大きい任意の数値で、ブレイクポイントの最大実行回数を指定します。
有効な値は 0(デフォルト)~32767 です。 |
||||||||||||||
Number of activations | Count | 関連するステートメント行でブレイクポイントが有効化された回数を示します。
このカウンタは、プログラムがレベル 1 で起動されるとリセットされます。 |
||||||||||||||
Error in definition | E | プログラム実行中に、ブレイクポイント定義にあるステートメント行が、カタログ化オブジェクトに見つからないことを示します。
このエラーは、デバッグ中にオブジェクトのソースが変更され、再度カタログされると発生する場合があります。 |
||||||||||||||
Commands | 6 個までのデバッグコマンド。 各行に 1 個のコマンドを入力します。 使用できるすべてのコマンドの概要については、「コマンドの概要と構文」を参照してください。
注意: |