Rexx-debugging
Rexx-デバッグ
デバッグは、プログラミング言語の重要な機能です。 開発者がエラーを診断し、根本原因を見つけて、それに応じて解決するのに役立ちます。 Rexxでは、トレースユーティリティがデバッグに使用されます。 トレース命令は、2つの方法で実装できます。1つはバッチモードで、もう1つはインタラクティブモードです。 両方のオプションを実装する方法を見てみましょう。
バッチモードでのトレース
traceコマンドは、実行される各Rexxコマンドの詳細レベルを提供するために使用されます。
トレース文の一般的な構文は次のように示されています-
構文
trace [setting]
設定は、次のオプションのいずれかになることができます-
- A -すべてのコマンドをトレースします。
- C -オペレーティングシステムに送信されるホストコマンドのみをトレースします。
- E -エラーになったオペレーティングシステムに送信されるホストコマンドのみをトレースします。
- F -失敗に終わったオペレーティングシステムに送信されたホストコマンドのみをトレースします。
- I -これは、Rexxコマンドの中間レベルのトレースを提供します。
- L -このオプションは、発生時にトレースにラベルを付ける場合に使用します。
- N -これは、トレースが発生しないデフォルトのオプションです。
traceコマンドの例を見てみましょう。
例
/*Main program*/
trace A
/*Main program*/
n = 100.45 if datatype( n, wholenumber ) then signal msg
say 'This is a whole number'
return 0
msg :
say ' This is an incorrect number '
上記のプログラムの出力は次のようになります-
5 *- *n = 100.45 if datatype( n, wholenumber ) then signal msg
7* - *say 'This is a whole number
This is a whole number
8* -* return 0
出力から、プログラムの出力に追加のトレースが追加されたことがわかります。 次のことは、出力について注意することができます-
- 行番号と実行されたステートメントがトレース出力に追加されます。
- 実行される各行は、トレース出力に表示されます。
トレース機能
トレースは、トレース機能を使用して有効にすることもできます。 一般的な構文と例を以下に示します。
構文
trace()
上記の関数は、現在のトレースレベルを返します。
パラメーター
None
戻り値
上記の関数は、現在のトレースレベルを示します。
例
/*Main program*/
say trace()
/*Main program*/
n = 100.45 if datatype( n, wholenumber ) then signal msg
say 'This is a whole number'
return 0
msg :
say 'This is an incorrect number '
上記のプログラムの出力は次のようになります。
N
This is an incorrect number
Nの最初の行は、トレースが標準に設定されていることを示します。
トレース値の設定
トレースレベルは、トレース機能で設定できます。 一般的な構文と例を以下に示します。
構文
trace(travel_level)
パラメーター
- trace_level -これは、トレースレベルの設定に使用できるオプションに似ています。
戻り値
上記の関数は、現在のトレースレベルを示します。
例
/*Main program*/
say trace()
current_trace = trace('A')
say current_trace
/*Main program*/
n = 100.45 if datatype( n, wholenumber ) then
signal msg say 'This is a whole number'
return 0
msg :
say ' This is an incorrect number '
上記のプログラムの出力は次のようになります-
N
4 *- *say current_trace
N
6* - *n = 100.45
7* - *if \ datatype( n, wholenumber ) then
8* - *signal msg
12* -* say 'This is an incorrect number'
'This is an incorrect number'
インタラクティブなトレース
対話型トレースでは、プログラムの実行時にトレースが実行されます。 Visual Studio for .NetなどのIDEのように、ブレークポイントを追加して各ステートメントの実行方法を確認できます。同様に、各コード行の実行中にプログラムを確認できます。
一般的な構文は次のとおりです-
構文
trace ?options
ここで、オプションは以下に示すようにtraceコマンドの場合と同じです。
- A -すべてのコマンドをトレースします
- C -オペレーティングシステムに送信されるホストコマンドのみをトレースします。
- E -エラーになったオペレーティングシステムに送信されるホストコマンドのみをトレースします。
- F -失敗に終わったオペレーティングシステムに送信されたホストコマンドのみをトレースします。
- I -これは、Rexxコマンドの中間レベルのトレースを提供します。
- L -このオプションは、発生時にトレースにラベルを付ける場合に使用します。
- N -これは、トレースが発生しないデフォルトのオプションです。
アクティブトレースを実装する例を見てみましょう。
例
/*Main program*/
trace ?A
/*Main program*/
n = 100.45 if datatype( n, wholenumber ) then
signal msg
say 'This is a whole number'
return 0
msg : say 'This is an incorrect number'
上記のプログラムの出力は、次のプログラムのようになります。 トレースはコードの各行で停止します。次に、Enterボタンを押して次のコード行に移動する必要があります。
This is an incorrect number
+++ "LINUX COMMAND/home/cg/root/5798511/main.rex"
5 *- *n = 100.45 if datatype( n, wholenumber ) then
+++ Interactive trace. "Trace Off" to end debug, ENTER to Continue. +++
6* - *signal msg
10* - *msg :
10* -* say 'This is an incorrect number'