dcmds
- thread ::findstack [-v]
- 指定されたカーネルスレッド (kthread_t 構造体の仮想アドレスによって識別される) に関連するスタックトレースを出力します。複数の異なるアルゴリズムを使用して該当するスタックバックトレースを見つけます。オプションのコマンド文字列を指定すると、ドット変数はスタックフレームの最先頭のフレームポインタアドレスにリセットされ、指定されたコマンドはコマンド行に入力された場合と同じように評価されます。デフォルトのコマンド文字列は、「<.$C0」です。すなわち、フレームポインタを含め、引数を付けずにスタックトレースを出力します。
> 000002a100067c60::findstack
> 000002a100067c60::findstack
stack pointer for thread 2a100067c60: 2a1000670c1
[ 000002a1000670c1 cv_wait+0x3c() ]
000002a100067171 scsi_hba_barrier_daemon+0x80()
000002a100067251 thread_start+4()
-
::pgrep [-x] [-n|-o] regexp - 名前が regexp 正規表現パターンに適合するプロセスのプロセス情報を表示します。pgrep(1) コマンドに似ています。すべてのプロセスを対象にしたパターンマッチングに使用されます。
-n オプションを指定すると、パターンに適合する最新のプロセスだけが表示されます。 -o オプションを指定すると、パターンに適合するもっとも古いプロセスだけが表示されます。 -x オプションを指定すると、検索パターンと正確に一致する名前を持つプロセスだけが表示されます。
> ::pgrep ssh
> ::pgrep ssh
S PID PPID PGID SID UID FLAGS ADDR NAME
R 613 1 612 612 0 0x42000000 ffffff00cf527000 sshd
R 1206 613 612 612 0 0x42010000 ffffff00cf4f1058 sshd
R 1207 1206 612 612 0 0x42010000 ffffff00cf6e6050 sshd
-
pid ::pid2proc - 指定されたプロセス ID に対応する proc_t アドレスを出力します。MDB のデフォルトは 16 進数であることを思い出してください。したがって、pgrep(1) または ps(1) を使用して取得した 10 進数のプロセス ID には接頭辞 0t を付ける必要があります。
> 265::pid2proc
> 265::pid2proc
ffffff00cf527000
-
process ::pmap [-q] - 指定されたプロセスアドレスに該当するプロセスのメモリーマップを出力します。pmap(1) に似た書式を使用して出力を表示します。-q オプションを指定すると、出力が省略形式で表示されるので、処理時間が短くなります。
> ffffff00ce5e2008::pmap
> ffffff00ce5e2008::pmap
SEG BASE SIZE RES PATH
ffffff00c98f2818 0000000008044000 16k 16k [ anon ]
ffffff00ca636178 0000000008050000 44k 44k /usr/sbin/cron
ffffff00ca649a08 000000000806b000 12k 12k /usr/sbin/cron
ffffff00ca62a720 000000000806e000 60k 44k [ anon ]
ffffff00c94d0658 00000000fe820000 128k 128k /lib/libbsm.so.1
ffffff00ca6cb408 00000000fe840000 36k 36k /lib/libbsm.so.1
ffffff00c98f21b8 00000000fe849000 4k 0k [ anon ]
ffffff00c98f8808 00000000fe9d0000 56k 52k /usr/lib/locale/common/metho
ffffff00ca6ad200 00000000fe9ed000 8k 8k /usr/lib/locale/common/metho
ffffff00ce58d850 00000000fe9f0000 1288k 104k /usr/lib/locale/ja_JP.UTF-8/
ffffff00ce5906c8 00000000feb42000 4k 4k /usr/lib/locale/ja_JP.UTF-8/
ffffff00ca649d08 00000000feda0000 20k 20k /lib/libcontract.so.1
ffffff00ca65a618 00000000fedb5000 4k 4k /lib/libcontract.so.1
ffffff00c9504de0 00000000fedc0000 4k 4k /system/volatile/tzsyncrpaqF
ffffff00ca6cb108 00000000fedd0000 4k 4k [ anon ]
:
:
-
::project - kernel project を表示します。
> ::project
> ::project
ADDR PROJID ZONEID REFCNT
ffffff00c8a94e90 0 0 692
ffffff00cfbb4840 3 0 5
ffffff010a9f9360 1 0 4
:
:
-
[address] ::ps [- fltTP] - 指定されたプロセスまたはすべてのアクティブなシステムプロセスに関連する情報の要約を ps(1) に似た形式で出力します。
-f 完全なコマンド名と初期引数が出力されます。 -l 各プロセスに関連する LWP が出力されます。 -t 各プロセスの LWP に関連するカーネルスレッドが出力されます。 -T 各プロセスに関連するタスク ID が出力されます。 - 各プロセスに関連するプロジェクト ID が出力されます。 > ffffff00c7e80030::ps -
fltTP > ffffff00c7e80030::ps -fltTP
S PID PPID PGID SID TASK PROJ UID FLAGS ADDR NAME
R 7 0 0 0 0 0 0 0x00020001 ffffff00c7e80030 intrd
T 0xffffff00021fcc20 <TS_SLEEP>
L 0xffffff00c6c450c0 ID: 1
-
::ptree - それぞれの親プロセスから派生した子プロセスを含むプロセスツリーを出力します。ptree(1) に似た書式を使用して出力を表示します。
> ::ptree
> ::ptree
fffffffffbc35e30 sched
ffffff00c7e7f038 vmtasks
ffffff00c7e80030 intrd
ffffff00c7e84028 fsflush
ffffff00c7e86020 pageout
ffffff00c7e89018 init
ffffff00cf51c008 sendmail
:
:
-
::task - アクティブなカーネルタスク構造体とそれに関連する ID 番号および属性のリストを出力します。プロセスタスク ID の詳細については、settaskid(2) を参照してください。
> ::task
> ::task
ADDR TASKID PROJID ZONEID REFCNT FLAGS
ffffff00d6338010 98 0 0 1 0x00000000
ffffff00d63380c8 96 0 0 1 0x00000000
ffffff00d6338180 95 0 0 1 0x00000000
ffffff00d6338238 94 0 0 1 0x00000000
ffffff00d63382f0 93 0 0 1 0x00000000
ffffff00d63383a8 112 0 0 1 0x00000000
ffffff00d6338460 91 0 0 1 0x00000000
ffffff00d6338518 89 0 0 1 0x00000000
ffffff00d63385d0 88 0 0 1 0x00000000
ffffff00d6338688 82 0 0 2 0x00000000
ffffff00d6338740 80 0 0 2 0x00000000
ffffff00d63387f8 75 0 0 4 0x00000000
ffffff00d63388b0 81 0 0 1 0x00000000
ffffff00d6338968 68 0 0 1 0x00000000
ffffff00d6338a20 65 0 0 1 0x00000000
ffffff00dc3d6b98 107 0 0 1 0x00000000
ffffff00d6338b90 61 0 0 1 0x00000000
ffffff00dc3d6c50 109 0 0 1 0x00000000
:
:
-
[address] ::thread [-bdfimps] - 指定された kthread_t 構造体のプロパティーを表示します。kthread_t 構造体のアドレスを指定しないと、すべてのカーネルスレッドのプロパティーが表示されます。
-b オプションを指定すると、スレッドのターンスタイルとブロッキング同期オブジェクトに関連する情報が表示されます。 -d スレッドのディスパッチャーの優先順位、バインディング、および最終ディスパッチ時刻が表示されます。 -f 状態が TS_FREE であるスレッドが出力から削除されます。 -i スレッドの状態、フラグ、優先順位、および割り込み情報が表示されます(デフォルト)。 -m ほかのすべての出力オプションがマージされて、単一の出力行に表示されます。 -p スレッドのプロセス、LWP、および資格ポインタが表示されます。 -s スレッドのシグナル待ち行列とシグナルの保留と保持を示すマスクが表示されます。 > ::thread
> ::thread
ADDR STATE FLG PFLG SFLG PRI EPRI PIL INTR
fffffffffbc36de0 stopped 10000 100 3e03 96 0 0 n/a
ffffff0002005c20 onproc 10008 0 3 -1 0 0 n/a
ffffff000200bc20 sleep 10008 0 3 60 0 0 n/a
ffffff0002011c20 sleep 10008 0 3 60 0 0 n/a
ffffff0002017c20 sleep 10008 0 3 60 0 0 n/a
:
:
ffffff0002071c20 free 10009 0 3 0 0 0 n/a
ffffff0002077c20 free 10009 0 3 0 0 0 n/a
ffffff000207dc20 free 10009 0 3 0 0 0 n/a
ffffff0002083c20 free 10009 0 3 0 0 0 n/a
ffffff0002089c20 free 10009 0 3 0 0 0 n/a
ffffff000208fc20 free 10009 0 3 0 0 0 n/a
ffffff0002095c20 free 10009 0 3 109 0 10 ffffff00020a1c20
ffffff000209bc20 free 10009 0 3 109 0 10 ffffff00020a1c20
ffffff00020a1c20 free 10009 0 3 105 0 6 ffffff00cd0d80c0
:
:
-
[address] ::threadlist [-t] [-v [count]] - スレッドと、関連するスタックトレースを表示します。
-v スタックトレースを含む詳細な情報を表示します -t taskq に属するスレッドをスキップします。 count count 以上の引数を表示しません(デフォルト値は 0) > ::threadlist
> ::threadlist
ADDR PROC LWP CMD/LWPID
fffffffffbc36de0 fffffffffbc35e30 fffffffffbc3f470 sched/1
ffffff0002005c20 fffffffffbc35e30 0 idle()
ffffff000200bc20 fffffffffbc35e30 0 thread_reaper()
ffffff0002011c20 fffffffffbc35e30 0 tq:kmem_move_taskq
ffffff0002017c20 fffffffffbc35e30 0 tq:pseudo_nexus_enum_tq
ffffff000201dc20 fffffffffbc35e30 0 scsi_hba_barrier_daemon()
ffffff0002023c20 fffffffffbc35e30 0 scsi_lunchg1_daemon()
ffffff0002029c20 fffffffffbc35e30 0 scsi_lunchg2_daemon()
ffffff000202fc20 fffffffffbc35e30 0 tq:scsi_vhci_nexus_enum_tq
ffffff00020c5c20 fffffffffbc35e30 0 tq:mdi_taskq
ffffff00020b3c20 fffffffffbc35e30 0 tq:mdi_taskq
:
:
> fffffffffbc36de0::threadlist -
v > fffffffffbc36de0::threadlist -v
ADDR PROC LWP CLS PRI WCHAN
fffffffffbc36de0 fffffffffbc35e30 fffffffffbc3f470 0 96 0
PC: _resume_from_idle+0xf2 CMD: sched
stack pointer for thread fffffffffbc36de0: fffffffffbc7f970
[ fffffffffbc7f970 _resume_from_idle+0xf2() ]
swtch+0x13c()
sched+0x451()
main+0x513()
_locore_start+0x90()
walker
- proc
- アクティブなプロセス構造体(proc_t)に対して反復適用します。
> ::walk proc |::print proc_t p_user.u_psargs
> ::walk proc |::print proc_t p_user.u_psargs
p_user.u_psargs = [ "sched" ]
p_user.u_psargs = [ "nfsd_kproc" ]
p_user.u_psargs = [ "lockd_kproc" ]
p_user.u_psargs = [ "vmtasks" ]
p_user.u_psargs = [ "intrd" ]
p_user.u_psargs = [ "fsflush" ]
p_user.u_psargs = [ "pageout" ]
p_user.u_psargs = [ "/usr/sbin/init" ]
p_user.u_psargs = [ "/usr/lib/sendmail -bl -q15m" ]
:
:
-
task - 指定されたタスクポインタを使用して、指定されたタスクのメンバーのプロセス構造体(proc_t)のリストに反復適用します。
> 00000300062b7368::walk task |::ps
> 00000300062b7368::walk task |::ps
S PID PPID PGID SID UID FLAGS ADDR NAME
R 393 388 387 387 0 0x4a004000 00000300165040b8 hald-addon-cpufr
R 388 387 387 387 0 0x4a004000 000003001584d008 hald-runner
R 387 1 387 387 0 0x42000000 00000300140fcfe8 hald
-
thread - カーネルスレッド (kthread_t) 構造体のセットに対して反復適用します。大域 walk が起動されると、すべてのカーネルスレッドがこの walker によって戻されます。プロセス構造体(proc_t) のアドレスを開始点として使用することによって局所 walk が起動されると、指定したプロセスに関連するスレッドのセットが戻されます。
> ::walk thread |::print kthread_t t_procp |::ps
> ::walk thread |::print kthread_t t_procp |::ps
S PID PPID PGID SID UID FLAGS ADDR NAME
R 0 0 0 0 0 0x00000001 00000000018a62c0 sched
R 0 0 0 0 0 0x00000001 00000000018a62c0 sched
R 0 0 0 0 0 0x00000001 00000000018a62c0 sched
R 0 0 0 0 0 0x00000001 00000000018a62c0 sched
R 0 0 0 0 0 0x00000001 00000000018a62c0 sched
R 0 0 0 0 0 0x00000001 00000000018a62c0 sched
:
:
0 件のコメント:
コメントを投稿