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
> ::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
> ffffff00cb990800::mblk2dblk
ffffff00cb98d900
 
 

[ address ] ::mblk_verify

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

> ::mblk_verify
> ::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
> ::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
> 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
> ffffff00dc4a1aa8::q2otherq
ffffff00dc4a1ba0
 

address ::q2rdq

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

> ffffff00dc4a1aa8::q2rdq
> ffffff00dc4a1aa8::q2rdq
ffffff00dc4a1aa8
 

address ::q2stream

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

> ffffff00dac81aa8::q2stream
> ffffff00dac81aa8::q2stream
ffffff00dac82cc0
 

address ::q2syncq

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

> ffffff00dac81aa8::q2syncq
> ffffff00dac81aa8::q2syncq
ffffff00dac81c98
 

address ::q2wrq

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

> ffffff00dc4a1aa8::q2wrq
> 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
> ::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
> 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
> 30008cf7d68::str2mate30008cf7d68
 
 

address ::str2wrq

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

> 0000030008cf9c38::str2wrq
> 0000030008cf9c38::str2wrq
1a133e8
 

[address] ::stream

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

> ffffff00dac82cc0::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
> 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
> ffffff00dac81c98::syncq2q
ffffff00dac81aa8
 

walker

b_cont

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

> 0000030014eec1c0::walk b_cont |::print mblk_t b_flag
> 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
> 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
> 0000030008cf9c38::walk qlink |::print queue_t q_qinfo
q_qinfo = wclrinit
 
 

qnext

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

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

readq

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

> 0000030008cf9c38::q2stream |::walk readq |::print -a queue_t q_qinfo
> 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
> 0000030008cf9c38::q2stream |::walk writeq |::print -a queue_t q_qinfo
30008cf9d30 q_qinfo = wclwinit
30008cf9aa0 q_qinfo = conskbduwinit
 

0 件のコメント:

コメントを投稿