Break

BREAKコマンドは、コードの実行を一時停止し、ダイレクトモードを開始します。

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

B[REAK][:tvexpr] [expr[:tvexpr][,...]]

Mトランザクション内でBREAKコマンドを発行すると、そのトランザクションのアイソレーションを破壊します。GT.Mがトランザクション処理を実装する方法のために、トランザクション内のBREAKは、トランザクションが再起動の無限数を("ライブロック:live lock ")を低下させる可能性があります。

一般的に、プロダクション(本番)のプログラムは、BREAKコマンドを含めることはできません。したがって、GT.Mは、ソースコードではなくプロセスに一時的なブレークポイントを挿入するZBREAKとZSTEPのコマンドを提供しています。イメージが終了するまで、または、明示的に別のZBREAKコマンドによって削除されるまでは、ZBREAKが挿入されたBREAKが唯一の存在です。ZSTEPコマンドの実行のためにのみ存在するイメージの中で、ZSTEPもまた、一時的なBREAKを挿入します。GT.Mのデバッグ環境では、BREAKを挿入するZBREAKとZSTEPは、ルーチンに直接BREAKをコーディングするよりも、ブレークポイントの設定で、より柔軟でよりエラーを起こしにくい手段を提供します。ZBREAKとZSTEPの詳細については、これらのコマンドを記述するセクションを参照してください。プロダクション(本番)を目的とするコード内の任意のBREAKコマンドは、プロダクションにFALSEである何かに条件を付けるべきですが、ZBREAKコマンドとは異なり、GT.Mは、BREAKコマンドを "オフ:turn off" にするに手段が現在ありません。

ZCONTINUEは、割り込みプログラムの実行を再開します。

GT.M は BREAKのソースを識別するメッセージを表示します:

VIEW "BREAKMSG" マスクは、これらのメッセージを選択的に有効または無効にします。 マスクの説明については、 “View”を参照してください。 デフォルトでは、GT.Mイメージを実行するプロセスはすべてのBREAKメッセージを表示します。

プロセスがBREAKを検出すると、それはダイレクトモードでコマンドを処理するためのプロンプトを示す準備が表示されます。デフォルトでは、ダイレクトモードでは、GTM>プロンプトが表示されます。$ZPROMPT 特殊変数をSETは、プロンプトを変更できます。

BREAKの例

例:

LOOP0     F  S act=$O(^act(act)) Q:act=""  B:debug  D LOOP1

FORループは、コマンドの後置条件を持つBREAKが含まれています。

例:

GTM>ZPRINT ^br
br;
      kill
      for i=1:1:3 do break;
      quit
break;
      write "Iteration ",i,?15,"x=",$get(x,"<UNDEF>"),!
      break:$data(x) "write ""OK"",!":x,"write ""Wrong again"",!":'x
      set x=$increment(x,$data(x))
      quit
GTM>DO ^br
Iteration 1    x=<UNDEF>
Iteration 2    x=0
%GTM-I-BREAK, Break instruction encountered
            At M source location break+2^br
GTM>ZCONTINUE
Wrong again
%GTM-I-BREAK, Break instruction encountered
            At M source location break+2^br
GTM>ZCONTINUE
Iteration 3    x=1
OK
%GTM-I-BREAK, Break instruction encountered
            At M source location break+2^br
GTM>ZCONTINUE
%GTM-I-BREAK, Break instruction encountered
            At M source location break+2^br
GTM>ZCONTINUE
GTM>

これは、コマンドと引数の後置条件の両方を持つBREAKを使用しています。アクションには、デバッグメッセージを表示します。

inserted by FC2 system