dbx コマンドによるデバッグ

関数の中だけイベントを有効にする (in func)

たとえば、


trace step -in foo

は、次のようなスクリプトと等価です。


# ハンドラの使用不可能状態を作成する
when step -disable { echo Stepped to $line; }
t=$newhandlerid    # ハンドラ ID を憶えておく
when in foo {
 # foo を入力するとトレースハンドラ -enable "$t" が
 # 使用可能になり、foo から返るとトレースが
 # 使用不可能になります。 
 when returns { handler -disable "$t"; };
}