プログラミングユーティリティ

/proc

dbxtruss、および prex は、/proc を使用してターゲットプロセスを制御します。/proc では、1 つのクライアントだけが安全にターゲットプロセスを制御できます。このため、dbxprex のようなユーティリティを同じターゲットプログラム上で同時に実行することはできません。dbx または truss が実行されているターゲットプログラム上で prex を実行しようとすると、prex は「cannot attach to target (ターゲットに接続できません)」というメッセージを表示します。

ただし、以下の手順によって prexdbx を交互に実行できます。

  1. prex を起動します。

  2. プローブポイントの状態を設定します。

  3. quit suspend コマンドを実行します。

  4. dbx を起動します。

  5. 中断されているプログラムに接続します。

    ターゲットは、prexdbx 以外のコードは実行しません。

    ターゲットに SIGSTOP シグナルを送ってそのターゲットを一時停止させてから、"quit resume" を prex に入力することもできます。これを行なった場合には、停止されたプロセス上で dbx を呼び出してから、SIGCONT シグナルを送る必要があります (そうしない場合、dbx がハングします)。