dtrace のトレース結果と、illumos のソースブラウザをリンクさせるスクリプト。
#!/usr/bin/perl
use strict;
use warnings;
my $indent_max = 0;
my @trace;
my $count = 0;
while (<>) {
if (/^ *[0-9]+( +)\-> ([^ ]+)/) {
my $indent = length($1) / 2;
$indent_max = $indent if ($indent_max < $indent);
$trace[$count]{'indent'} = $indent;
$trace[$count++]{'function'} = $2;
}
}
print "<style type=\"text/css\">\n";
print "td {\n";
print "\twidth:...
mdb写経/UFS
2012/09/28
dcmds
address ::acl
inode を指定して、acl を表示します。
> ffffff01da291d00::acl
ADDR TAG PERM WHO
ffffff01e2c22628 USER_OBJ 06 0
ffffff01e151de10 GROUP_OBJ 0 3
ffffff01e35968e8 OTHER_OBJ 0 0
ffffff01e0cca3c8 USER 07 60004
[ address ] ::cg [-v]
cylinder group 構造体の概要を表示します。
> ::cg
CGX CG ...
システムをクラッシュさせる方法いろいろ
2012/09/27
1. break して sync
# Debugging requested; hardware watchdog suspended.
c)ontinue, s)ync, r)eset? s
panic[cpu6]/thread=2a101299c60: sync initiated
sched: trap type = 0x0
pid=0, pc=0x0, sp=0x0, tstate=0x0, context=0x0
o0-o7: 0, 0, 0, 0, 0, 0, 0, 0
g1-g7: 0, 0, 0, 0, 0, 0, 0
000002a101299350 unix:sync_handler+138 (3000943a000, 0, 10d4c00, 2a101299c60, 1, 183f800)
%l0-3: 0000000001931400 0000000000000000 0000000001913c00 0000000000000000
...
mdb写経/ファイル
2012/09/22
dcmds
process ::fd fd-num
指定された proc_t 構造体のプロセスに関連するファイル記述子 fd-num に対応する file_t 構造体のアドレスを出力します。
> 1::pid2proc |::fd 0 |::print file_t f_vnode |::vnode2path
/etc/initpipe
process ::pfiles [-fp]
指定された proc_t 構造体のプロセスがオープンしているファイルに関する情報を表示します。
-p
パス名を表示します
-f
file_t 構造体に関する情報を表示します
> ffffff00e264b060::pfiles
FD TYPE VNODE INFO
0 CHR ffffff00cc1f6100 /devices/pseudo/mm@0:null
1 CHR...
mdb写経/タスク待ち行列とエラー待ち行列
2012/09/22
dcmds
[ address ] ::errorq
指定されたエラー待ち行列に関連する情報の要約を表示します。アドレスを指定しないと、すべてのシステムエラー待ち行列に関連する情報が表示されます。各待ち行列のアドレス、名前、待ち行列の長さ、データ要素サイズ、および、さまざまな待ち行列統計が表示されます。
> ::errorq
ADDR NAME S V N ACCEPT DROP LOG
300024fc540 errh_queue + 0 0 0
300024fc7c0 ce_queue + 0 0 0
300024fca40 ue_queue + ! 0 0 0
300024fd440 fm_ereport_queue...
mdb写経/ゾーンおよびリソース管理
2012/09/21
dcmds
address ::rctl [handle]
指定した rctl_t 構造体の定義を表示します。
> 0000030014dbe3f8::rctl
0000030014dbe3f8 8 : process.max-sem-nsems
(cur) 0x200 privileged flags=<DENY>
0x7fff system flags=<DENY,MAX>
[ address ] ::rctl_dict
システム全体のデフォルト rctl の定義を表示します。
> ::rctl_dict
ID NAME ADDR TYPE GLOBAL_FLAGS
12...
mdb写経/ZFS
2012/09/21
dcmds
::arc
ARC の各種変数を表示します。
> ::arc
hits = 327944
misses = 11177
demand_data_hits = 282145
demand_data_misses = 3369
demand_metadata_hits = 37056
demand_metadata_misses = 2574
prefetch_data_hits = 575
prefetch_data_misses = 1102
prefetch_metadata_hits = 8168
prefetch_metadata_misses = 4132
...
mdb写経/スレッド、プロセス、タスク、およびプロジェクト
2012/09/21
dcmds
thread ::findstack [-v]
指定されたカーネルスレッド (kthread_t 構造体の仮想アドレスによって識別される) に関連するスタックトレースを出力します。複数の異なるアルゴリズムを使用して該当するスタックバックトレースを見つけます。オプションのコマンド文字列を指定すると、ドット変数はスタックフレームの最先頭のフレームポインタアドレスにリセットされ、指定されたコマンドはコマンド行に入力された場合と同じように評価されます。デフォルトのコマンド文字列は、「<.$C0」です。すなわち、フレームポインタを含め、引数を付けずにスタックトレースを出力します。
> 000002a100067c60::findstack
stack pointer for thread 2a100067c60: 2a1000670c1
[ 000002a1000670c1 cv_wait+0x3c() ]
000002a100067171...
mdb写経/その他のファイルシステム
2012/09/21
dcmds
[ address ] ::contract
contract を表示します。
> ::contract
ADDR ID TYPE STATE OWNER REGENT
000003000f943bc0 1 process owned 18a62c0 0
000003001099dc40 3 process owned 3000f94af80 3000f943bc0
0000030010efa680 4 process owned 30010ee8f98 3001099dc40
00000300112b7780 5 process owned ...
mdb写経/NFS
2012/09/21
dcmds
address ::nfs_expvis
exportinfo visible list の内容を表示します(visible list があるのは pseudo ノードだけ)。
> 0x60017e6ddc0::nfs_expvis
exportinfo->exp_visible = 60017e6ddc0
/Install/Images/sc_3.2_u2
addr: 60017e6ddc0 exp : 0 ref: 1
vp : 60014a34b00 ino : 13 (0xd)
seci: 6001679c300 nsec: 1
Security Flavors :
sys ref: 1 flag: 0x0 ()
address ::nfs_expinfo
exportinfo...
mdb写経/カーネル実行時リンカー
2012/09/21
dcmds
::ctfinfo
モジュールの CTF(Compact ANSI-C Type Format) に関する情報を表示します。
> ::ctfinfo
MODULE CTFDATA CTFSIZE
unix ffffff00c7bd5000 87877
genunix ffffff00c8398000 430688
specfs ffffff00c7bea920 538
fifofs ffffff00c7bea748 470
dtrace ffffff00cf7b3000 4271
devfs ...
mdb写経/デバイスドライバと DDI フレームワーク
2012/09/20
dcmds
address ::binding_hash_entry
指定されたカーネル名とメジャー番号のバインディングハッシュテーブルエントリ (構造体 bind) のアドレスを使用して、ノードバインディング名、メジャー番号、および次の要素へのポインタを表示します。
[ address ] ::dev2major <dev_t>
dev_t をメジャー番号に変換します。
> 4500000006::dev2major
0x45 (0t69)
[ address ] ::dev2minor <dev_t>
dev_t をメジャー番号に変換します。
> 4500000006::dev2minor
0x6 (0t6)
address ::dev2snode
dev_t を snode に変換します。
> e400000000::dev2snode
3000bd6d738
3000bd6d6a0
>...
登録:
投稿 (Atom)