バージョン 4.2.5
 —  デバッガ  —

ウォッチポイントのメンテナンス

変数値が変わると常に、ウォッチポイントによって Natural オブジェクトの実行が中断されます。 また下記の「ウォッチポイント演算子」で説明しているように(「ウォッチポイントの設定」も参照)、特定の変数値に関連付けた条件に応じて中断させることもできます。

ウォッチポイントを使用すると、エラーがあるオブジェクトによって予期せず変更された変数を検出できます。

変数が変更されたと見なされるのは、変数の現在の値が、ウォッチポイントが前回トリガされたときに記録された値または初期値と異なる場合です。 ウォッチポイント値の比較検証は、253 バイトのフィールド長に制限されています。 最大長を超えるラージ変数の場合は、最初の 253 バイトのみが比較に使用されます。

ウォッチポイントは、Natural オブジェクトの名前と適切な変数の名前を指定して定義します。

ウォッチポイントの一意の識別子は、デバッガによって割り当てられるスパイ番号です。

ウォッチポイントを指定すると、そのウォッチポイントを削除するまで Natural セッション全体で有効になります。

Start of instruction set Watchpoint maintenance 機能を呼び出すには

このセクションでは、[Watchpoint Maintenance]メニューの機能、およびウォッチポイント画面のフィールドと列について説明します。


テストモードを ON/OFF に設定

テストモードのオンとオフの切り替え」を参照してください。

Top of page

ウォッチポイントの有効化

Start of instruction set 指定したウォッチポイントの現在の状態をアクティブに設定するには

オブジェクトまたは変数を指定しない場合(または[Variable]フィールドでデフォルトのアスタリスクをそのまま使用する場合)は、すべてのウォッチポイントが有効になります。

Top of page

ウォッチポイントの無効化

Start of instruction set 指定したウォッチポイントの現在の状態を非アクティブに設定するには

オブジェクト名または変数を指定しない場合(または[Variable]フィールドでデフォルトのアスタリスクをそのまま使用する場合)は、すべてのウォッチポイントが無効になります。

Top of page

ウォッチポイントの削除

Start of instruction set 指定したウォッチポイントを削除するには

オブジェクト名または変数を指定しない場合(または[Variable]フィールドでデフォルトのアスタリスクをそのまま使用する場合)は、すべてのウォッチポイントが削除されます。

Top of page

ウォッチポイントの表示

Start of instruction setウォッチポイントを表示するには

  1. [Watchpoint Maintenance]メニューで、ファンクションコード「D」、オブジェクト名または変数名、あるいはその両方を入力します。 オブジェクト名を入力しない場合は、デフォルトオブジェクト(指定されている場合)が使用されます。

    または:
    ダイレクトコマンド DISPLAY を使用します。その構文については、「コマンドの概要とコマンド構文」セクションで説明しています。

    指定されたオブジェクト名と変数名にウォッチポイントが設定されている場合は、下の例のような、すべてのウォッチポイントの定義を示す[Display Watchpoint]画面が表示されます。

    10:25:32              ***** NATURAL TEST UTILITIES *****             2006-02-14
    Test Mode ON                - Display Watchpoint -              Object         
                                                                                   
    Spy number ..............  12                                                  
    Initial state ........... active         Current state .. active               
    Watchpoint name ......... WATCHTEST1     DBID/FNR ....... 10/32                
    Object name ............. WATCHPGM       Library ........ SAG                  
    Variable name ........... WATCHVARIABLE                                        
    Skips before execution ..     0          Format/length .. A 10                 
    Max number executions ...     0          Persistent ..... N   Act.level ...  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                    Alpha Hex   Canc

    [Display Watchpoint]画面のフィールドについては、「ウォッチポイント画面のフィールドと列」で説明します。

    一意のウォッチポイントが見つからない場合は、[List Watchpoints]画面(下記を参照)が表示されます。

  2. [Display Watchpoint]画面では、ウォッチポイント演算子で指定したウォッチポイントの有効化の条件を表示できます(「ウォッチポイント演算子」も参照)。

    演算子またはオペランド値、あるいはその両方を英数字形式で表示するには、PF10(Alpha)キーを押します。 .

    または:
    演算子またはオペランド値、あるいはその両方を 16 進形式で表示するには、PF11(Hex)キーを押します。

    [Commands]フィールドがある[Display Watchpoint]画面のデフォルト表示に戻るには、PF22(Cmds)キーを押します。

Start of instruction set ウォッチポイントをリストするには

Top of page

ウォッチポイントの変更

Start of instruction set ウォッチポイントを変更するには

  1. [Watchpoint Maintenance]メニューで、ファンクションコード「M」、オブジェクト名および変数名を入力します。 オブジェクト名を入力しない場合は、デフォルトオブジェクト(指定されている場合)が使用されます。

    または:
    ダイレクトコマンド MODIFY を使用します。その構文については、「コマンドの概要とコマンド構文」セクションで説明しています。

    一意のウォッチポイントが指定されている場合は、[Modify Watchpoint]画面が表示され、ここでフィールドのエントリを変更できます。 [Modify Watchpoint]画面のフィールドについては、「ウォッチポイント画面のフィールドと列」で説明しています。

    一意のウォッチポイントが見つからない場合は、[List Watchpoints]画面(「ウォッチポイントの表示」を参照)が表示されます。

  2. [Modify Watchpoint]画面では、ウォッチポイント演算子で指定したウォッチポイントの有効化の条件を変更できます(「ウォッチポイント演算子」も参照)。

    演算子またはオペランド値、あるいはその両方を英数字形式で変更するには、PF10(Alpha)キーを押します。 .

    または:
    演算子またはオペランド値、あるいはその両方を 16 進形式で変更するには、PF11(Hex)キーを押します。

    [Commands]フィールドがある[Modify Watchpoint]画面のデフォルト表示に戻るには、PF22(Cmds)キーを押します。

  3. ウォッチポイント定義の編集を完了したら、PF3(Exit)または PF5(Save)キーを押して変更を保存します。 PF12(Canc)キーを押すと、ウォッチポイントは変更されないままになります。

Top of page

ウォッチポイントの設定

Start of instruction set セッションのウォッチポイントを追加するには

このセクションでは、次のトピックについて説明します。

ウォッチポイント演算子

[Watchpoint Maintenance]画面で演算子と適切なオペランド(対応するオペランドがある場合)を指定することで、ウォッチポイントの有効化に対して条件を指定することができます。

Start of instruction set ウォッチポイント演算子を指定するには

  1. 英数字形式で演算子オペランドを指定する場合は、選択したウォッチポイントの[Set Watchpoint]または[Modify Watchpoint]画面で PF10(Alpha)キーを押します。

    または:
    16 進形式で演算子オペランドを指定する場合は、選択したウォッチポイントの[Set Watchpoint]または[Modify Watchpoint]画面で PF11(Hex)キーを押します。

    2 つの入力フィールドが画面の下半分に表示されます。

  2. 左の入力フィールドには、次の表に示すウォッチポイント演算子のいずれかを入力します。

    右の入力フィールドには、変数と比較するオペランド値(対応するオペランドがある場合)を入力します。 ダイナミック変数(英数字またはバイナリ)に対して指定した演算子があるウォッチポイントの場合、オペランド値は左から右へ比較されます。 ダイナミック変数のフィールド長は変化するため、最大 253 バイトを比較値として入力できます。 ダイナミック変数の現在の長さが 253 バイトの最大比較長よりも短い場合、比較はダイナミック変数の現在の長さの範囲内でのみ実行されます。

    演算子 説明
    MOD

    変更。
    変数の内容が変更されるたびに、ウォッチポイントが有効になります。

    これはデフォルト設定です。

    EQ

    等しい。
    変数が変更され、変数の現在値が指定されたオペランド値と等しい場合、ウォッチポイントが有効になります。

    NE

    等しくない。
    変数が変更され、変数の現在値が指定されたオペランド値と等しくない場合、ウォッチポイントが有効になります。

    GT

    より大きい。
    変数が変更され、変数の現在値が指定されたオペランド値よりも大きい場合、ウォッチポイントが有効になります。

    GE

    より大きいまたは等しい。
    変数が変更され、変数の現在値が指定されたオペランド値以上の場合、ウォッチポイントが有効になります。

    LT

    より小さい。
    変数が変更され、変数の現在値が指定されたオペランド値よりも小さい場合、ウォッチポイントが有効になります。

    LE

    より小さいまたは等しい。
    変数が変更され、変数の現在値が指定されたオペランド値以下の場合、ウォッチポイントが有効になります。

    INV

    無効な内容です。
    タイプ NPD または T の変数に割り当てられた値が次の条件に一致しないとき、ウォッチポイントが有効になります。

    N  アンパック型数値。
    P パック型数値。
    D 1582-01-01 から 2700-12-31 までの日付。
    T 1582-01-01 00:00:00.0 から 2700-12-31 23:59:59.9 までの時刻。

    PF22(Cmds)キーを押すと、[Commands]入力フィールドのある[Set Watchpoint]または[Modify Watchpoint]画面のデフォルト表示に戻ることができます。

  3. 演算子の定義を保存するには、PF5(Save)キーを押します。

    または:
    演算子の定義を変更しないままで[Modify Watchpoint]画面を終了するには、PF12(Canc)キーを押します。

Top of page

ウォッチポイント画面のフィールドと列

次の表では、[Display Watchpoint]または[Modify Watchpoint]画面のフィールドと、[List Watchpoints]画面の列について説明します。

フィールド 説明
Test Mode   テストモードが ONOFF のいずれに設定されているかを示します。
Object   指定されている場合、デフォルトオブジェクトの名前を示します(「デバッガの開始」を参照)。
  Co これは入力フィールドであり、次のいずれかの行コマンドを指定できます。
AC  ウォッチポイントの有効化
DA ウォッチポイントの無効化
DI ウォッチポイントの表示
MO ウォッチポイントの変更
DE ウォッチポイントの削除
? 有効な行コマンドのリストの表示
. ウォッチポイント画面の終了
Spy number No. ウォッチポイントの設定時にデバッガによって割り当てられる一意の数値。
Initial state Stat I ウォッチポイントの初期の状態と現在の状態として、アクティブ(A)または非アクティブ(I)を指定します。
Current state Stat C
Watchpoint name WP Name ウォッチポイントの名前。

ウォッチポイントのデフォルト名は、関連する変数の名前です。

有効な値は 1~12 文字です。 フィールドサイズを超えた名前は、12 文字よりも後が切り捨てられます。

[List Watchpoints]画面では、ウォッチポイント名が変数名の上の第 1 行に表示されます。

DBID/FNR DBID Natural オブジェクトが保存されているシステムファイルのデータベース ID(DBID)とファイル番号(FNR)。
FNR
Library Library オブジェクトを含むライブラリの名前。
Object name Object 現在のライブラリまたは STEPLIB のいずれかで使用できるオブジェクトの名前。

システム変数をウォッチポイントとして指定する場合は、[Object name]フィールドにアスタリスク(*)を入力します。

Variable name   ユーザー定義のグローバル変数またはシステム変数の名前。

変数がグループの一部である場合、その変数には接頭辞としてグループ名が追加されます。

システム変数を指定する場合は、[Object name]フィールドにアスタリスク(*)を入力します。

配列に対しては、インデックスの記述を指定する必要があります。ウォッチポイントは、1 つの要素に対してのみ定義できます。

[List Watchpoints]画面では、変数名がウォッチポイント名の下の第 2 行に表示されます。

詳細については、「変数のメンテナンス」も参照してください。

Skips before execution Skips ウォッチポイントに対して設定した条件を満たすまで、ウォッチポイントは実行しないと指定します(「ウォッチポイント演算子」も参照)。

有効な値は 0(デフォルト)~32767 です。

Max number executions Execs ゼロ(0)より大きい任意の数値で、ウォッチポイントの最大実行回数を指定します。

有効な値は 0(デフォルト)~32767 です。

Number of activations Count ウォッチポイント演算子を使用して変数に対して設定したウォッチポイント条件が満たされた回数を示します。

このカウンタは、プログラムがレベル 1 で起動されるとリセットされます。

Format/length   例えば A10 など、変数の Natural データフォーマットと長さ。
Persistent P ウォッチポイントをパーシスタントとしてマークします。 パーシスタントウォッチポイントは、それらが定義された Natural オブジェクトに限定されず、下位のすべてのプログラムレベルに追加的に適用されます。

パーシスタントウォッチポイントは、BY VALUE RESULT ではなく、参照によってサブプログラムに渡される変数に対してのみ意味があります。『ステートメント』ドキュメントで、CALLNAT ステートメントの関連するパラメータについての説明(パラメータを示す「operand2」の項)を参照してください。

制限事項
パーシスタントウォッチポイントは、パラメータまたはコンテキスト節で定義された変数には使用できません。

有効な値は Y(Yes)または N(No)です。 N はデフォルトです。

Act. level   パーシスタントへの参照。

パーシスタントウォッチポイントが自動的に有効にされたプログラムレベルを示します。

Error in definition E 無効なウォッチポイント定義を示します。 それぞれの変数定義が変更された後、デバッグ時に実行中のプログラムが再カタログされると、このエラーが発生する可能性があります。

ダイナミック変数または X-array(eXtensible 配列)に設定したウォッチポイントは、プログラムの実行時にのみチェックされます。

Commands   6 個までのデバッグコマンド。 各行に 1 個のコマンドを入力します。 使用できるすべてのコマンドの概要については、「コマンドの概要と構文」を参照してください。

注意:
コマンド BREAK を削除し、ダイアログを表示するコマンドを何も指定しないと、プログラムの中断時にデバッガが制御を受け取れなくなります。

Top of page