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

コマンド参照

when

指定したイベントが発生したときに command を実行するには、次のように入力します。


when event-specification { command(s); }

stop

現時点で実行を停止して表示を更新するには、次のように入力します。通常、プロセスは本体の実行後も続けられますが、stop コマンドはこれを防止します。次の形式は、when の本体内でのみ有効です。


stop -update

上記と同じですが、表示は更新しません。


stop -noupdate

指定したイベントで実行を停止するには、次のように入力します。


stop event-specification

step

step コマンドは次のものと同等です。


when step -temp { stop; }; cont

step コマンドは sig 引数をとることができます。step そのものは、cont と同様に現在のシグナルを取り消します。シグナルを転送するには、明示的にシグナルを与える必要があります。変数 $sig を使用すると、プログラムにステップして、それに現在のシグナルを送信することができます。


step -sig $sig

cancel

when の本体内でのみ有効です。cancel コマンドは、配信された可能性のあるシグナルすべてを取り消して、プロセスを続行させます。次に例を示します。


when sig SIGINT { echo signal info;  cancel; }

status

status コマンドは、tracewhen、および stop によって作成されたハンドラを示します。status hid は、指定のハンドラをリストします。ハンドラが無効な場合は、その hid が、かっこ () ではなく角かっこ [] 内に出力されます。


status [-s] -h hid

status の出力は、宛先をファイルに変更することができます。名目上、形式はリダイレクト中には変更されません。-s フラグを使用すると、ハンドラを source コマンドを使用して復元できるようにする出力を作成することができます。-h オプションを使用すると、隠されたオプションをリスト表示することもできます。

status を使用したハンドラのリダイレクトとファイルのソース化の元の技法は、ハンドラの有効化および無効化機能の欠落を補うものでした。

delete

delete コマンドは、ブレークポイントやほかのイベントを削除します。


delete all -all -temp hid [hid ... ]

delete hid は指定のハンドラを削除します。

delete all または delete 0 (ゼロ) も使用できます。

delete -all は、一時ハンドラを含むすべてのハンドラを削除します。delete -temp は、一時ハンドラだけをすべて削除します。

-h hid は、hid が隠されたハンドラの場合に必要です。-h all は、隠されたハンドラもすべて削除します。

clear

clear に引数を付けずに実行すると、プロセス停止位置にあるブレークポイントにもとづくべてのハンドラが削除されます。clear line では、指定の行にあるブレークポイントにもとづくすべてのハンドラが削除されます。


clear line

handler

ハンドラは、デバッグセッションで管理されるべきイベントごとに作成されます。tracestopwhen コマンドはハンドラを作成し、それぞれがハンドラ ID (hid) と呼ばれる数値を返します。handlerstatusdelete コマンドは、一般的な方法でハンドラに関する情報を操作したり指定したりします。


handler [ -disable | -enable ] all hid [...]

handler -disable hid は、指定のイベントを無効にします。

handler -disable all は、すべてのハンドラを無効にします。

handler -enable hid は指定のハンドラを有効にします。

handler -enable all はすべてのハンドラを有効にします。


handler [ -count | -reset ] hid new-count-limit

handler -count hid は、current-count/limit の形式でイベントのカウントを返します (status によって出力される形式と同じ)。limit はキーワード infinity になる場合があります。ksh 修飾子 ${#} および ${##} は、出力値を分割する場合に使用してください。

handler -count hid new-count-limit は、新しいカウントの限界を、指定のハンドラに割り当てます。

handler -reset hid は、ハンドラのカウントを 0 (ゼロ) にリセットします。