mdb写経/STREAMS

2012/10/14

dcmds

[ address ] ::mblk [-q|v] [-f|F flag] [-t|T type] [-l|L|B len] [-d dbaddr]

指定された mblk_t のアドレスのメッセージブロックの情報を表示します。アドレスの指定が無い場合、全てのメッセージブロックの情報を表示します。

-q mblk のアドレスのみを表示します
-d 指定した dblk アドレスに該当する mblk のみを表示します
-f 指定した flag に該当する mblk のみを表示します
-F 指定した flag に該当しない mblk のみを表示します
-t 指定した db_type に該当する mblk のみを表示します
-T 指定した db_type 以外に該当する mblk のみを表示します
-l len MBLKL が len と一致する mblk のみを表示します
-L len MBLKL <= len の mblk のみを表示します
-G len MBLKL >= len の mblk のみを表示します
-b len db_lim - db_base が len と一致する mblk のみを表示します

※参考 mblk(9S)

> ::mblk ADDR FL TYPE LEN BLEN RPTR DBLK 00000300159d2000 0 data 14 64 0000030016721340 00000300167212c0 00000300159d2040 0 data 40 128 0000030015f4fea0 0000030015f4fe00 00000300159d2080 0 break 376 512 000003000c393240 000003000c3931c0 00000300159d2140 0 data 0 128 00000300159cc150 00000300159cc080 00000300159d2180 0 data 32 12288 00000300147f01c0 00000300147f0140 00000300159d21c0 0 data 71 128 00000300159cc204 00000300159cc180 00000300159d2200 0 data 78 128 00000300159cc300 00000300159cc280 00000300159d2240 0 data 78 128 00000300159cc400 00000300159cc380 00000300159d2280 0 data 0 128 00000300159cc544 00000300159cc480 00000300159d22c0 0 data 40 128 00000300159cc620 00000300159cc580 00000300159d2300 0 data 0 128 00000300159cc744 00000300159cc680 00000300159d2340 0 data 126 128 00000300159cc800 00000300159cc780 00000300159d2380 0 data 40 128 00000300159cc920 00000300159cc880 00000300159d23c0 0 data 0 128 00000300159cca48 00000300159cc980 00000300159d2400 0 data 0 320 000003000c39052c 000003000c390380 00000300159d2440 0 data 14 64 000003000a3baf80 000003000a3baf00 00000300159d2480 0 data 78 128 00000300159ccc00 00000300159ccb80 00000300159d24c0 0 data 1504 1536 000003000cada740 000003000cada6c0 00000300159d2500 0 data 48 192 000003000a4b08b0 000003000a4b07c0 : :

address ::mblk2dblk

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

> ffffff00cb990800::mblk2dblk ffffff00cb98d900

[ address ] ::mblk_verify

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

> ::mblk_verify mdb: ffffff00cb990380: invalid b_datap pointer mdb: ffffff00d19f1320: invalid b_datap pointer mdb: ffffff00d19f17a0: invalid b_datap pointer mdb: ffffff00d19f1920: invalid b_datap pointer mdb: ffffff00d19f1e60: invalid b_datap pointer mdb: ffffff00c84aa380: invalid b_datap pointer mdb: ffffff00d8e13d00: invalid b_datap pointer mdb: ffffff00cfdfc0a0: invalid b_datap pointer

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

指定された queue_t をフィルタリングして表示します。

-v 待ち行列フラグが詳細に復号化されます
-q ポインタのみを表示します(フィルタとして使用できます)
-f 指定したフラグがセットされている待ち行列のみを表示します
-F 指定したフラグがセットされていない待ち行列のみを表示します
-m 指定された modname に一致する待ち行列のみを表示します
-s 指定された syncq_t アドレスに一致する待ち行列のみを表示します

> ::queue ADDR MODULE FLAGS NBLK ffffff00daea0000 tl 204032 0 0000000000000000 ffffff00daea02a8 strrhead 044032 0 0000000000000000 ffffff00daea0550 strrhead 044032 0 0000000000000000 ffffff00daea07f8 wc 200832 0 0000000000000000 ffffff00daea0aa0 tl 204032 0 0000000000000000 ffffff00daea0d48 ttcompat 000832 0 0000000000000000 ffffff00dac81008 timod 000832 0 0000000000000000 ffffff00dc4a12b0 tl 204032 0 0000000000000000 ffffff00dac812b0 tl 204032 0 0000000000000000 ffffff00dc4a1558 tl 204032 0 0000000000000000 ffffff00dac81558 strrhead 044030 0 0000000000000000 ffffff00dc4a1800 ttcompat 000832 0 0000000000000000 ffffff00dac81800 timod 000832 0 0000000000000000 ffffff00dc4a1aa8 strrhead 044032 3 ffffff00d6414880 ffffff00dac81aa8 tcp 20204032 0 0000000000000000 ffffff00dc4a1d50 fifostrrhead 044032 0 0000000000000000 ffffff00dac81d50 strrhead 044032 0 0000000000000000 : :
> ffffff00dac81aa8::queue -v ADDR MODULE FLAGS NBLK ffffff00dac81aa8 tcp 20204032 0 0000000000000000 | +--> QWANTR Someone wants to read Q QREADR This is the reader (first) Q QUSE This queue in use (allocation) QMTSAFE stream module is MT-safe QISDRV the Queue is attached to a driver

address ::q2otherq

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

> ffffff00dc4a1aa8::q2otherq ffffff00dc4a1ba0

address ::q2rdq

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

> ffffff00dc4a1aa8::q2rdq ffffff00dc4a1aa8

address ::q2stream

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

> ffffff00dac81aa8::q2stream ffffff00dac82cc0

address ::q2syncq

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

> ffffff00dac81aa8::q2syncq ffffff00dac81c98

address ::q2wrq

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

> ffffff00dc4a1aa8::q2wrq ffffff00dc4a1ba0

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

指定された STREAM ヘッドを表す stdata_t をフィルタリングして表示します。stdata_t のアドレスが指定されていない場合は、stream_head_cache の全ての STREAM ヘッドを表示します。

-v stdata フラグが詳細に復号化されます
-q ポインタのみを表示します(フィルタとして使用できます)
-f flag 指定したフラグがセットされている STREAM ヘッドを表示します
-F flag 指定したフラグがセットされていないる STREAM ヘッドを表示します

ADDR stream head address
WRQ write queue pointer
FLAGS stream head flags (use -v to show in symbolic form)
VNODE stream vnode pointer
N/A pushcount and anchor positions
REF stream head reference counter
> ::stdata ADDR WRQ FLAGS VNODE N/A REF 00000300169ee040 00000300141763b8 40010000 000003000a9cc140 0/0 0 00000300169ee1b8 0000030014847840 00000000 0000030014849c40 0/0 0 00000300169ee798 000003000817c1d0 00018082 0000030016ed0b80 3/0 0 00000300169eed78 0000030017c67148 40010010 000003000822b340 0/0 0 00000300169eeef0 000003000817cea0 00000000 00000300176ed340 0/0 0 00000300169ef068 000003000817d130 40010000 000003001572e340 0/0 0 00000300169ef648 0000030017445b50 00000000 00000300176edc40 2/0 0 00000300169ef7c0 00000300176c7b58 00000000 00000300165fda40 1/0 0 : :
> 00000300169ee798::stdata -v ADDR WRQ FLAGS VNODE N/A REF 00000300169ee798 000003000817c1d0 00018082 0000030016ed0b80 3/0 0 | +--> RSLEEP someone wants to read/recv msg STRISTTY stream is a terminal SNDMREAD used for read notification OLDNDELAY use old NDELAY TTY semantics

address ::str2mate

指定された STREAM ヘッドを表す stdata_t のアドレスを使用して、関連する STREAM ヘッドを出力します。

> 30008cf7d68::str2mate30008cf7d68

address ::str2wrq

指定された STREAM ヘッドを表す stdata_t のアドレスを使用して、書き込み側待ち行列を出力します。

> 0000030008cf9c38::str2wrq 1a133e8

[address] ::stream

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

> ffffff00dac82cc0::stream +-----------------------+-----------------------+ | 0xffffff00dac81e48 | 0xffffff00dac81d50 | | strwhead | strrhead | | | | | cnt = 0t0 | cnt = 0t0 | | flg = 0x00004022 | flg = 0x00044032 | +-----------------------+-----------------------+ | ^ v | +-----------------------+-----------------------+ | 0xffffff00dac818f8 | 0xffffff00dac81800 | | timod | timod | | | | | cnt = 0t0 | cnt = 0t0 | | flg = 0x00000822 | flg = 0x00000832 | +-----------------------+-----------------------+ | ^ v | +-----------------------+-----------------------+ | 0xffffff00dac81ba0 | 0xffffff00dac81aa8 | | tcp | tcp | | | | | cnt = 0t0 | cnt = 0t0 | | flg = 0x20244022 | flg = 0x20204032 | +-----------------------+-----------------------+

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

指定された syncq_t をフィルタリングして表示します。

-v syncq フラグが詳細に復号化されます
-q ポインタのみを表示します(フィルタとして使用できます)
-f 指定したフラグがセットされている syncq を表示します
-F 指定したフラグがセットされていない syncq を表示します
-t 指定したタイプがセットされている syncq を表示します
-T 指定したタイプがセットされていない syncq を表示します

> ffffff00dc4a1c98::syncq -v ADDR FLG TYP CNT NQS OUTER SF PRI ffffff00dc4a1c98 00 ff 0 0 0000000000000000 0 0 | +--> SQ_CIPUT Concurrent inner put procedure SQ_CISVC Concurrent inner svc procedure SQ_CIOC Concurrent inner open/close SQ_CICB Concurrent inner callback SQ_COPUT Concurrent outer put procedure SQ_COSVC Concurrent outer svc procedure SQ_COOC Concurrent outer open/close SQ_COCB Concurrent outer callback

address ::syncq2q

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

> ffffff00dac81c98::syncq2q ffffff00dac81aa8

walker

b_cont

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

> 0000030014eec1c0::walk b_cont |::print mblk_t b_flag b_flag = 0 b_flag = 0

b_next

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

> 0000030014eec1c0::walk b_next |::print mblk_t b_flag b_flag = 0

qlink

指定された queue_t のアドレスを使用して、q_link ポインタを使用しながら、関連する待ち行列のリストを調べます。

> 0000030008cf9c38::walk qlink |::print queue_t q_qinfo q_qinfo = wclrinit

qnext

指定された queue_t のアドレスを使用して、q_next ポインタを使用しながら、関連する待ち行列のリストを調べます。

> 0000030008cf9c38::walk qnext |::print queue_t q_qinfo q_qinfo = wclrinit

readq

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

> 0000030008cf9c38::q2stream |::walk readq |::print -a queue_t q_qinfo 30008cf9c38 q_qinfo = wclrinit 30008cf99a8 q_qinfo = conskbdurinit

writeq

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

> 0000030008cf9c38::q2stream |::walk writeq |::print -a queue_t q_qinfo 30008cf9d30 q_qinfo = wclwinit 30008cf9aa0 q_qinfo = conskbduwinit

0 件のコメント:

コメントを投稿