ZBreak

ZBREAKコマンドは、デバッグ中にルーチンにブレークポイントをセットまたはクリアします。

ZBREAKコマンドのフォーマットは:

ZB[REAK][:tvexpr] [-]entryref[:[expr][:intexpr]][,...]

GT.Mが入り口参照(entryref)を検出する時、GT.Mは、ルーチンのコードの実行を中断し、行上で任意のコマンドを実行する前に、ブレークポイントのアクションをXECUTEします。 entryrefs の詳細については、第5章:“Mの一般的な言語特徴 を参照してください。

オプションの整数式が使用されている時、GT.Mは、ルーチン実行中にブレークポイントを検出するプロセスの intexpr 回目で、ブレークポイントをアクティブにします。いったんGT.Mがブレークポイントをアクティブになると、そのブレークポイントは、明示的に置換または削除されるまで、または、プロセスが終了するまで、プロセスをアクティブのままにします。

詳細については、 第4章:“ダイレクトモードでの操作とデバッグ を参照してください。

ZBREAKの例

例:

GTM>ZPRint ^ZBTEST
ZBTEST;
     Do SUB
     Quit
SUB  Write !,"This is ZBTEST"
     Quit
GTM>ZBREAK SUB^ZBTEST
GTM>Do ^ZBTEST
%GTM-I-BREAKZBA, Break instruction encountered during ZBREAK action
At M source location SUB^ZBTEST
GTM>ZSHOW "B"
SUB^ZBTEST

SUB^ZBTESTでのデフォルト アクションで、これはZBREAKをインサートします。GT.MがBREAKに遭遇した後、ZSHOW "B" はイメージ内のZBREAKだけでこれが表示されます。

例:

GTM>ZBREAK -*
                
GTM>ZGOTO
GTM>ZBREAK SUB^ZBTEST:"W !,""Trace"""
GTM>Do ^ZBTEST
Trace
This is ZBTEST
GTM>

これは、ZBREAK -* で、すべての既存のZBREAKを削除します。それらを変更する前に、ZBREAKを削除する必要がないことに注意してください。また、引数なしZGOTOでプロセスの呼び出しスタックをクリアします。次に、トレースポイントを挿入するZBREAKを使用しています。毎回GT.Mが、ZBREAKでトレースポイントを確立している場所の行を実行する場合、ダイレクトモードに入ることなく指定されたアクションを実行します。

例:

ZBreak PRINT^TIME::5

行が5回行が実行される前に、ルーチン内のPRINT 行でこのBREAKが実行されます。

例:

ZBREAK PRINT^TIME:"WRITE AVE BREAK":3

PRINT^TIMEの3番目の実行の前に、これは、WRITE AVE のZBREAK アクションを挿入し、そしてBREAKします。

inserted by FC2 system