予約語を表 1-4 に示します。これらの予約語を使用して属性または値を選択する場合は、その予約語を単一引用符で囲んでください。
表 1-4 予約語add | alloc | buffer |
clear | connect | continue |
create | dealloc | delete |
disable | enable | fcns |
filter | help | history |
kill | ktrace | list |
off | on | pfilter |
probes | quit | resume |
sets | source | suspend |
trace | untrace | values |
たとえば、以下のコマンドは、trace 属性の値が ON のプローブをすべて有効にします。trace と on はどちらも予約語なので、単一引用符で囲む必要があります。
enable 'trace'='on'表 1-5 prex のコマンド
コマンド |
アクション |
---|---|
clear $set_name clear selector_list |
接続されているプローブ関数を切り離します。 |
connect &debug $set_name connect &debug selector_list |
デバック関数をプローブポイントに接続します。このコマンドを実行しても、プローブポイントは有効になりません。デバッグ関数は、トレースファイルにではなく stderr に出力を送ります。 |
continue |
prex を接続したまま、プログラムの実行を再開します。 |
create $set_name selector_list |
selector_list と一致するプローブポイントのグループを作成します。同時に、selector_list のエイリアス $set_name を作成します。 |
enable $set_name enable selector_list disable $set_name disable selector_list |
プローブポイントに設定されているアクションをそのプローブポイントに実行させるかどうかを制御します。デフォルトでは、プローブポイントは無効になっています。つまり、prex はトレースをオンにしません。プローブポイントのトレースを停止する最も効率的な方法 (プローブポイントにおける実行時間の面から考えた場合) は、disable コマンドを使用する方法です。 enable と disable コマンドは、主スイッチで、トレースを実行するかどうかを決定する最も優先度が高い要素です。プローブポイントが無効の場合は、そのプローブポイントが debug() 関数に接続されていて trace 属性がオンであっても、stderr やトレースファイルに情報は送られません。 |
help |
使用可能な prex コマンドをすべて表示します。 |
list attributes probes selector_list list attributes probes$ set_name |
指定されたプローブポイントが有効/無効のどちらであるか、そのプローブポイントのトレースがオン/オフのどちらであるか、および接続されているプローブ関数を表示します。「属性」で説明したように、属性が選択条件になります。たとえば、以下のコマンドは、一致したプローブポイントの name 属性と file 属性の値だけを表示します。 list name file probes $all 以下のコマンドは、デフォルトの属性とその値 (name、enable、trace、file、line、funcs) をすべて表示します。 list probes $all |
list fcns |
定義済みの関数 (現在は、&debug だけが定義されています) を表示します。 |
list history |
制御コマンドの履歴を表示します。dlopen() によって新しい共有オブジェクトがプログラムに取り込まれるたびに connect、clear、trace、untrace、enable、disable で使用したコマンドの履歴が記録されます。「dlopen()、dlclose()、履歴」を参照してください。 |
list sets |
定義されたセットを表示します。 |
list values attributes |
attributes に指定された属性に関連付けられた固有値を表示します。たとえば list values keys を実行すると、プログラム内の固有キーがすべて表示されます。 |
source filename |
prex コマンドのファイルを読み込みます。ファイル名は引用符で囲んでください。 |
trace $set_name >trace selector_list untrace $set_name untrace selector_list |
プローブポイントのトレース動作を制御します。trace と untrace を使用して、プローブポイントを実行したときにそのプローブポイントにトレース記録を生成させるかどうかを切り替えます。trace と untrace のどちらを実行しても、プローブポイントは有効になりません。
デフォルトでは、トレースはオンになります。
untrace コマンドは、デバッグ出力だけを得たいときに利用できます。このコマンドを使用する際には、トレースをオフ、デバッグをオンにして、プローブを有効にする必要があります。
debug は stderr に書き込みを行いますが、trace は mmap された (メモリーが割り当てられた) ファイルに書き込みを行います。そのため、トレースの方がデバッグ関数よりもプログラムに与える負荷が少なくなります。 |
quit |
prex を終了します。prex を使用してプログラムがロードされている場合は、そのプログラムを強制終了します。prex にプログラムが接続されている場合は、そのプログラムが再実行されます。 |
quit kill |
prex を終了して、プログラムを強制終了します。 |
quit resume |
prex を終了して、プログラムを再実行します。 |
quit suspend |
プログラムを中断したまま、prex を終了します。 |