Solaris モジューラデバッガ

STREAMS

この節では、カーネル開発者やサードパーティーの STREAMS モジュールやドライバの開発者にとって有用な dcmd と walker について説明します。

dcmds

address ::mblk2dblk

指定された mblk_t のアドレスを使用して、対応する dblk_t のアドレスを出力します。

[address] ::mblk_verify

1 つまたは複数のメッセージブロックの整合性を確認します。アドレスを明示的に指定すると、そのメッセージブロックの整合性がチェックされます。アドレスを明示的に指定しないと、アクティブなメッセージブロックすべての整合性がチェックされます。この dcmd は、検出したが無効であるメッセージブロックについても出力します。

address ::queue [- v] [-f flag] [-F flag] [-s syncq]

指定された queue_t データ構造体をフィルタリングし表示します。オプションを指定しないと、queue_t の種々のプロパティーが表示されます。-v オプションを指定すると、待ち行列フラグが詳細に復号化されます。-f-F、または -m オプションを指定すると、これらのオプションの引数によって定義される条件に一致した場合にだけ、待ち行列が表示されます。したがって、この dcmd をパイプラインの入力のフィルタとして使用できます。-f オプションは、指定したフラグ (<sys/stream.h> の Q フラグ名の 1 つ) が待ち行列フラグの中に存在しなければならないことを指定します。-F オプションは、指定したフラグが待ち行列フラグの中に存在してはならないことを指定します。-m オプションは、待ち行列に関連するモジュール名が指定された modname に一致しなければならないことを指示します。-s オプションは、待ち行列に関連する syncq_t が指定された syncq_t アドレスに一致する必要があることを指示します。

address ::q2syncq

指定された queue_t のアドレスを使用して、対応する syncq_t データ構造体のアドレスを出力します。

address ::q2otherq

指定された queue_t のアドレスを使用して、ピアな読み取りまたは書き込み待ち行列構造体のアドレスを出力します。

address ::q2rdq

指定された queue_t のアドレスを使用して、対応する読み取り待ち行列のアドレスを出力します。

address ::q2wrq

指定された queue_t のアドレスを使用して、対応する書き込み待ち行列のアドレスを出力します。

[ address ] ::stream

指定された STREAM ヘッドを表す stdata_t 構造体のアドレスを使用して、カーネル STREAM データ構造体のイメージ図を表示します。読み取りと書き込みの待ち行列へのポインタ、バイト数、各モジュールのフラグが表示され、さらに、指定された待ち行列に関する追加情報が余白に表示される場合もあります。

address ::syncq [- v] [-f flag] [-F flag] [-t type] [- T type]

指定された syncq_t データ構造体をフィルタリングし表示します。オプションを指定しないと、queue_t の種々のプロパティーが表示されます。-v オプションを指定すると、syncq フラグが詳細に復号化されます。-f-F-t、または -T オプションを指定すると、これらのオプションの引数によって定義される条件に一致する場合にだけ、syncq が表示されます。したがって、この dcmd をパイプラインの入力のフィルタとして使用できます。-f オプションは、指定したフラグ (<sys/strsubr.h>SQ_ フラグ名の 1 つ) が syncq フラグの中に存在しなければならないことを指定します。-F オプションは、指定したフラグが syncq フラグの中に存在してはならないことを指定します。-t オプションは、指定したタイプ (<sys/strsubr.h>SQ_CI または SQ_CO タイプ名の 1 つ) が syncq タイプビットの中に存在しなければならないことを指定します。-T オプションは、指定したタイプが syncq タイプビットの中に存在してはならないことを指定します。

address ::syncq2q

指定された syncq_t のアドレスを使用して、対応する queue_t データ構造体のアドレスを出力します。

walker

b_cont

指定された mblk_t のアドレスを使用して、b_cont ポインタに従いながら、関連するメッセージ構造体のセットに対して反復適用します。b_cont ポインタは、指定されたメッセージブロックを、同じメッセージ上にある次の関連するメッセージブロックにリンクするために使用されます。メッセージブロックの詳細については、msgb(9S) のマニュアルページを参照してください。

b_next

指定された mblk_t のアドレスを使用して、b_next ポインタに従いながら、関連するメッセージ構造体のセットに対して反復適用します。b_next ポインタは、指定されたメッセージブロックを、指定された待ち行列上にある次の関連するメッセージブロックにリンクするために使用されます。メッセージブロックの詳細については、msgb(9S) のマニュアルページを参照してください。

qlink

指定された queue_t 構造体のアドレスを使用して、q_link ポインタを使用しながら、関連する待ち行列のリストを調べます。この構造体は、<sys/stream.h> で定義されます。

qnext

指定された queue_t 構造体のアドレスを使用して、q_next ポインタを使用しながら、関連する待ち行列のリストを調べます。この構造体は、<sys/stream.h> で定義されます。

readq

指定された stdata_t 構造体のアドレスを使用して、読み取り側待ち行列構造体のリストを調べます。

writeq

指定された stdata_t 構造体のアドレスを使用して、書き込み側待ち行列構造体のリストを調べます。