次に、実行進行状況に関するイベントのイベント仕様について説明します。
next イベントは、関数がステップされないことを除いては、step イベントと同様です。
このイベントは、現在表示されている関数の戻りのブレークポイントです。表示されている関数を使用するのは、いくつかの up を行なったあとに returns イベント指定を使用できるようにするためです。通常の returns イベントは常に一時イベント (-temp) で、動作中のプロセスが存在する場合にだけ作成できます。
returns function イベントは、特定の関数がその呼び出し場所に戻るたびに発生します。これは一時イベントではありません。戻り値は示されませんが、SPARC プラットフォームでは $o0、Intel プラットフォームでは $eax を使用して、必須戻り値を調べることができます。
$o0
$eax
$rax, $rdx
このイベントは、次のコードとほとんど同じ働きをします。
when in func { stop returns; } |
step イベントは、ソース行の先頭の命令が実行されると発生します。たとえば、次のようにシンプルに表現することができます。
when step { echo $lineno: $line; }; cont |
step イベントを有効にするということは、次に cont コマンドが使用されるときに自動的にステップ実行できるように dbx に命令することと同じです。
step (および next) イベントは一般的なステップコマンド終了時に発生しません。step コマンドは step イベントで次のように実装されます。alias step="when step -temp { whereami; stop; }; cont"