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
Read more ...