Solaris モジューラデバッガ

同期プリミティブ

この節では、特定のカーネル同期プリミティブを調べるために使用される dcmd と walker について説明します。各プリミティブの意味論については、マニュアルページの対応するセクション (9f) を参照してください。

dcmds

rwlock ::rwlock

指定された読み取り書き込みロック (rwlock(9F) のマニュアルページを参照) のアドレスを使用して、現在のロックの状態と待機しているスレッドのリストを表示します。

address ::sobj2ts

同期オブジェクトのアドレスを対応するターンスタイルのアドレスに変換して、ターンスタイルのアドレスを出力します。

[ address ] ::turnstile

指定された turnstile_t のプロパティーを表示します。turnstile_t のアドレスを指定しないと、すべてのターンスタイルのプロパティーが表示されます。

[ address ] ::wchaninfo [-v]

指定された条件変数 (condvar(9F) のマニュアルページを参照) またはセマフォー (semaphore(9F) のマニュアルページを参照) のアドレスを使用して、このオブジェクト上で現在待機しているスレッドを表示します。明示的にアドレスを指定しないと、待機しているスレッドがあるすべてのオブジェクトが表示されます。-v オプションを指定すると、オブジェクトで現在ブロックされているスレッドのリストが表示されます。

walker

blocked

指定された同期オブジェクト (たとえば、mutex(9F) または rwlock(9F)) のアドレスを使用して、ブロックされているカーネルスレッドのリストに対して反復適用します。

wchan

指定された条件変数 (condvar(9F) のマニュアルページを参照) またはセマフォー (semaphore(9F) のマニュアルページを参照) のアドレスを使用して、ブロックされているカーネルスレッドのリストに対して反復適用します。