dcmds
> $?%g0 = 0x0000000000000000 %l0 = 0x000000000183f800 page_retire_kstat+0x1d0%g1 = 0x0000000000000000 %l1 = 0x0000000001931800 kmem_bigtsb_default_arena+0x1e0%g2 = 0x0000000000000000 %l2 = 0x0000000000000000%g3 = 0x0000000000000000 %l3 = 0x00000300062c1e38%g4 = 0x0000000000000000 %l4 = 0x000000000198e400 kvps+0x328%g5 = 0x0000000000000000 %l5 = 0x0000000000000001%g6 = 0x0000000000000000 %l6 = 0x000000000183f800 page_retire_kstat+0x1d0%g7 = 0x0000000000000000 %l7 = 0x0000000001931800 kmem_bigtsb_default_arena+0x1e0%o0 = 0x0000000000000000 %i0 = 0x000000000000000f%o1 = 0x0000000000000000 %i1 = 0x0000030008eb0000%o2 = 0x0000000000000000 %i2 = 0x000002a101299c60%o3 = 0x0000000000000000 %i3 = 0x0000030016eb1290%o4 = 0x0000000000000000 %i4 = 0x0000000000000001%o5 = 0x0000000000000000 %i5 = 0x000000000183f800 page_retire_kstat+0x1d0%o6 = 0x0000000001912b81 panic_stack+0x35a1 %i6 = 0x0000000001912c91 panic_stack+0x36b1%o7 = 0x0000000000000000 %i7 = 0x0000000001056598 vpanic+0xcc%ccr = 0x00 xcc=nzvc icc=nzvc%fprs = 0x00 fef=0 du=0 dl=0%asi = 0x00%y = 0x0000000000000000%pc = 0x000000000107e694 panicsys+0x48%npc = 0x0000000000000000%sp = 0x0000000001912b81 unbiased=0x0000000001913380%fp = 0x0000000001912c91%tick = 0x0000af41ea658a08%tba = 0x0000000000000000%tt = 0x0%tl = 0x0%pil = 0xf%pstate = 0x000 cle=0 tle=0 mm=TSO red=0 pef=0 am=0 priv=0 ie=0 ag=0%cwp = 0x00 %cansave = 0x00%canrestore = 0x00 %otherwin = 0x00%wstate = 0x00 %cleanwin = 0x0
$C [ count ]
> $C> $C0000000001912b81 panicsys+0x48(f, 30008eb0000, 2a101299c60, 30016eb1290, 1, 183f800)0000000001912c91 vpanic+0xcc(10d4ce8, 2a1012993d8, 10d4c00, 2a101299c60, 1, 183f800)000002a101298aa1 panic+0x1c(10d4ce8, 193a000, 0, c0, 2a101299400, 1)000002a101298b51 sync_handler+0x138(30008eb0000, 0, 10d4c00, 2a101299c60, 1, 183f800)000002a101298c21 vx_handler+0x94(2a101299580, 73, 19d7000, 1, 18482f8, 18481f0)000002a101298cd1 promif_enter_mon+0xa8(183d000, c, 10da1e8, 10d9e40, 183d000, 10da000)000002a101298d91 kern_cif_handler+0x24(2a1012997a8, 0, 10dae58, 1, 183d400, 104efd0)000002a101298e41 client_handler+0x2c(104e63c, 2a1012997a8, 0, 18a7218, 1919000, 104e63c)000002a101298ef1 prom_enter_mon+0x24(0, 0, 18ef000, 1, 183d400, 10dae58)000002a101298fc1 debug_enter+0x10c(a, a, 1, 193f800, 183a400, 0)000002a101299091 abort_seq_softintr+0xfc(0, 0, 183a400, 2a101299d40, 2, 1)000002a101299251 intr_thread+0x258(16, 0, 1000000000000, 101010101010101, 1000000000000, 12)000002a1012690f1 cpu_halt+0x104(1913b90, 1, 1913b90, 1913a58, 6, 30008eb0000)000002a1012691a1 idle+0x120(183ec00, 7, 30008eb0000, 30008d65364, 183ed70, ffffffffffffffff)000002a101269251 thread_start+4(0, 0, 0, 0, 0, 0
[ base ] $d
> ::class> ::classSLOT NAME INIT FCN CLASS FCN0 SYS sys_init sys_classfuncs1 TS ts_init ts_classfuncs2 SDC sysdc_init sysdc_classfuncs3 FX fx_init fx_classfuncs4 0 05 0 06 0 07 0 08 0 09 0 0
$e
> $e> $e_fini(7bb9a014): 1b1c031a8210000f_info(7bb9a028): 1b1c031a92100008_init(7bb9a000): 1b1c031a8210000fpm_stop_pm_walk(7bb9a508): 9de3bf50f65e20f8pc_info(7bb9a370): 191c031ada5b22c0pm_start_pm_walk(7bb9a3f8): 9de3bf50f85e20f8_fini(7b32e234): 9de3bf503b1c01aa_info(7b32e260): 1b1c01aa92100008_init(7b32e100): 9de3bf303b1c01aaiptun_ioc_fini(7b32e4c4): 1b0000118210000fiptun_ioc_init(7b32e4a4): 1b0000118210000fiptun_delete(7b330370): 9de3bf4091362000iptun_create(7b32ffc4): 9de3bf20c077a7f7iptun_modify(7b330510): 9de3bf40d0062000iptun_taskq(70001fb8): 3001c437928iptun_cache(70001fc0): 3001c4de008::
$M
> $M> $MMACRO NATIVE EQUIVALENTbufctl ::bufctlbufctl_audit ::bufctl -vcpu ::cpuinfo -vcpun ::cpuinfo -vcpus ::walk cpu |::cpuinfo -vdevinfo ::print struct dev_infodevinfo.minor ::minornodesdevinfo.next ::walk devi_next |::devinfo -sdevinfo.parent ::walk devinfo_parents |::devinfo -sdevinfo.prop ::devinfodevinfo.sibling ::walk devinfo_siblings |::devinfo -sdevinfo_brief ::devinfo -sdevinfo_major ::devbindings -sdevnames_major ::devnames -mdevt ::devtdevt2snode ::dev2snodefindthreads ::walk thread |::threadmajor2snode ::major2snodemblk ::mblk -vmodctl.brief ::modctlmodules ::modinfomount ::fsinfomsgbuf ::msgbufmutex ::mutexpanicbuf ::panicinfopid2proc ::pid2proc |::print proc_tproc2u ::print proc_t p_userprocargs ::print proc_t p_user.u_psargsqueue ::queue -vsema ::print sema_impl_tstackregs ::stackregsstacktrace ::stackregssystemdump 0>pc;0>npc;nopanicdebug/W 1;:cthread ::print kthread_tthreadlist ::threadlist -vu ::print user_tutsname utsname::print
$v
> $v> $vi0 = fi1 = 30008eb0000i2 = 2a101299c60i3 = 30016eb1290i4 = 1i5 = 183f800i6 = 1912c91. = 10i7 = 10565980 = 2a10153bc60tick = af41ea658a08sp = 1912b81fp = 1912c919 = 1pil = fl0 = 183f800l1 = 1931800l3 = 300062c1e38l4 = 198e400l5 = 1l6 = 183f800l7 = 1931800b = 1800000d = 1a5930e = 1009070m = 7f454c46t = 3098f8o6 = 1912b81pc = 107e694
address ::array [type count] [variable]
> 0000030000042008::array kmem_cache_t 5> 0000030000042008::array kmem_cache_t 53000004200830000042280300000424f830000042770300000429e8
[ address ] ::dis [-abfw] [-n cnt] [address]
> 0x000000000107e694::dis -n 5 > 0x000000000107e694::dis -n 5panicsys+0x34: st %o4, [%sp + 0x8bf]panicsys+0x38: ldx [%g7 + 0x18], %o3panicsys+0x3c: stx %o3, [%sp + 0x8b7]panicsys+0x40: ldub [%g7 + 0x30], %o2panicsys+0x44: stb %o2, [%sp + 0x8b3]panicsys+0x48: call -0x28840 <setjmp>panicsys+0x4c: add %g7, 0x40, %o0panicsys+0x50: ld [%sp + 0x8ef], %i0panicsys+0x54: ldx [%sp + 0x8ff], %i1panicsys+0x58: ldx [%sp + 0x8f7], %i2panicsys+0x5c: ld [%i2 + 0x24], %i5
::disasms
> ::disasms> ::disasms1 - SPARC-v8 disassembler2 - SPARC-v9 disassembler4 - UltraSPARC1-v9 disassemblerdefault - default no-op disassemblerv8 - SPARC-v8 disassemblerv9 - SPARC-v9 disassemblerv9plus - UltraSPARC1-v9 disassembler
::dismode [mode]
> ::dismode> ::dismodedisassembly mode is v9plus (UltraSPARC1-v9 disassembler)
::dmods [-l] [module-name]
> ::dmods> ::dmodsarpcpccryptodtracefcipfcp::
> ::dmods -l ufs > ::dmods -l ufsufsdcmd acl - given an inode, display its in core acl'sdcmd cg - display a summarized cylinder group structuredcmd inode - display summarized inode_tdcmd inode_cache - search/display inodes from inode cachedcmd mapentry - dumps ufslog mapentrydcmd mapstats - dumps ufslog statswalk acl - given an inode, walk chains of in core acl'swalk cg - walk cg's in bio buffer cachewalk inode_cache - walk inode cachewalk ufslogmap - walk map entries in a ufs_log mt_map
[ address ] ::dump [-eqrstu] [-n count] [-f|-p] [-g bytes] [-w paragraphs]
-e | エンディアン性を調整します。-e オプションを指定すると、4 バイトワードが使用されます。-g オプションを使用すると、デフォルトのワードサイズを変更できます。 | |
-f | ターゲットの仮想アドレス空間からではなく、指定された仮想アドレスに対応するオブジェクトファイルの位置からデータを読み取ります。デバッガが現在、動作中のプロセス、コアファイル、またはクラッシュダンプに接続されていない場合、-f オプションはデフォルトで有効になります。 | |
-g group | バイトをバイトのグループで表示します。デフォルトの group サイズは 4 バイトです。group サイズは行幅を分割する 2 のべき乗にする必要があります。 | |
-p | address を、仮想アドレスではなく、ターゲットのアドレス空間内の物理的なアドレス位置として解釈します。 | |
-q | データの ASCII 形式の復号化を出力しません。 | |
-r | 各行に、絶対的なアドレスではなく、開始アドレスからの相対的な行数を与えます。このオプションを指定すると、-u オプションも暗黙的に指定されます。 | |
-s | 繰り返される行を省略します。 | |
-t | 行全体を読み取って出力するのではなく、指定されたアドレスの内容だけを読み取って表示します。 | |
-u | 段落の境界に配列するのではなく、配列せずに出力します。 | |
-w | paragraphs 行ごとに 16 バイトの段落で段落を表示します。デフォルトの段落数は 1 です。-w の最大値は 16 です。 |
> 2a101299d40,100::dump> 2a101299d40,100::dump\/ 1 2 3 4 5 6 7 8 9 a b c d e f v123456789abcdef2a101299d40: 0000af4d e0600c98 00000000 000002d5 ...M.`..........2a101299d50: 00000000 00000000 00000000 00000000 ................2a101299d60: 00000000 00000000 00000000 00000000 ................2a101299d70: 00000000 00000000 00000000 00000000 ................2a101299d80: 00000000 00000000 00000000 00000000 ................2a101299d90: 00000000 00000000 00000000 00000000 ................2a101299da0: 00000000 00000000 00000000 00000000 ................2a101299db0: 00000000 00000000 00000000 00000000 ................2a101299dc0: 00000000 018a62c0 00000300 08d59e60 ......b........`2a101299dd0: 000002a1 012c9c60 000002a1 012a1c60 .....,.`.....*.`2a101299de0: 00000000 00000000 00000000 00000000 ................2a101299df0: 00000000 00000000 00000300 062c1e38 .............,.82a101299e00: 00000000 38fe7043 00000000 00000000 ....8.pC........2a101299e10: 00000000 00000000 00000000 00000000 ................2a101299e20: 00000000 00000000 00000300 08eb00e8 ................2a101299e30: 000a0000 00000000 00000300 08d65340 ..............S@
[ address ] ::grep command
> ::walk inode_cache |::grep .==300043fca10> ::walk inode_cache |::grep .==300043fca10300043fca10
::echo args ...
> ::echo "TEST"> ::echo "TEST"TEST
> ::findsym kmem_flags> ::findsym kmem_flagsfound kmem_flags at dblk_lastfree_reusable+0x18found kmem_flags at kmem_cache_create+0xdcfound kmem_flags at kmem_cache_create+0x104found kmem_flags at kmem_debugging+4found kmem_flags at kmem_init+0xcfound kmem_flags at kmem_init+0x290found kmem_flags at kmem_init+0x5a4found kmem_flags at kmem_init+0x5d8
::formats
> ::formats> ::formats+ - increment dot by the count (variable size)- - decrement dot by the count (variable size)B - hexadecimal int (1 byte)C - character using C character notation (1 byte)D - decimal signed int (4 bytes)E - decimal unsigned long long (8 bytes)F - double (8 bytes)G - octal unsigned long long (8 bytes)H - swap bytes and shorts (4 bytes)I - address and disassembled instruction (variable size)J - hexadecimal long long (8 bytes)K - hexadecimal uintptr_t (8 bytes)::
[ address ] ::mappings [ name ]
> ::mappings> ::mappingsBASE LIMIT SIZE NAME1000000 1a26000 a26000 ktextseg1a26000 3000000 15da000 kvalloc70000000 80000000 10000000 kvseg32edd00000 f0000000 2300000 kdebugseg2a100000000 2a180000000 80000000 kpseg2a750000000 2a7575fa000 75fa000 kmapseg30000000000 70000000000 40000000000 kvseg70000000000 70002c6e000 2c6e000 kmem64ffff810000000000 ffff810100000000 100000000 kpmsegffff810100000000 ffff81017cf92000 7cf92000 kzioseg
[ address ] ::nm [ -DPdghnopuvx ] [ -t types ] [ -f format ] [ object ]
-D | .symtab の代わりに .dynsym (動的シンボルテーブル) を出力します。 |
-P | .symtab の代わりに専用シンボルテーブルを出力します。 |
-d | 値とサイズフィールドを 10 進数で出力します。 |
-f format [,format...] | 指定されたシンボル情報だけを出力します。有効な書式化引数文字列は次のとおりです。 ndx シンボルテーブルのインデックス val シンボルテーブル size サイズ (バイト) type シンボルの型 bind 結合 oth その他 shndx セクションのインデックス name シンボル名 ctype シンボルの C 言語の型 (既知の場合) obj シンボルを定義するオブジェクト |
-g | 大域シンボルだけを出力します。 |
-h | ヘッダー行を抑制します。 |
-n | 名前順にシンボルをソートします。 |
-o | 値とサイズフィールドを 8 進数で出力します。 |
-p | シンボルを、一連の ::nmadd コマンドとして出力します。このオプションは -P とともに使用して、マクロファイルを作成できます。その後、$< コマンドを用いて、このマクロファイルをデバッガに読み込みます。 |
-t type [,type...] | 指定された型のシンボルだけを出力します。有効な型引数文字列は次のとおりです。 noty STT_NOTYPE objt STT_OBJECT func STT_FUNC sect STT_SECTION file STT_FILE comm STT_COMMON tls STT_TLS regi STT_SPARC_REGISTER |
-u | 未定義のシンボルだけを出力します。 |
-v | 値順にシンボルをソートします。 |
-x | 値とサイズフィールドを 16 進数で出力します。 |
> ::nm> ::nmValue Size Type Bind Other Shndx Name0x0000000000000000|0x0000000000000000|NOTY |LOCL |0x0 |UNDEF |0x000000000183b728|0x0000000000000008|OBJT |LOCL |0x2 |13 |ops0x000000000183bac8|0x0000000000000008|OBJT |LOCL |0x2 |13 |romp0x000000000109b738|0x000000000000008c|FUNC |LOCL |0x2 |1 |kobj_lm_append0x000000000183bb20|0x0000000000000008|OBJT |LOCL |0x2 |13 |_kobj_printf0x0000000001816e20|0x0000000000000018|OBJT |LOCL |0x2 |10 |primaries0x000000000183bb30|0x0000000000000008|OBJT |LOCL |0x2 |13 |kobj_bzero0x000000000183bb38|0x0000000000000008|OBJT |LOCL |0x2 |13 |kobj_bcopy0x00000000018514c8|0x0000000000000000|OBJT |LOCL |0x0 |13 |_END_0x000000000183bb48|0x0000000000000008|OBJT |LOCL |0x2 |13 |dbvec0x000000000109b358|0x0000000000000020|FUNC |LOCL |0x2 |1 |kobj_kdi_get_polled_io0x000000000183bfe8|0x0000000000000004|OBJT |LOCL |0x2 |13 |kobj_mmu_pagesize0x000000000109b700|0x0000000000000038|FUNC |LOCL |0x2 |1 |kobj_lm_lookup::
[ address ] ::print [-aCdiLptx] [-c lim] [-l lim] [type [ member|offset ... ]]
type 引数の後ろに member 式または offset 式のリストをオプションで指定することができます。その場合は、指定された type のメンバーまたはサブメンバーだけが表示されます。メンバーは、配列インデックス演算子 ([])、構造体メンバー演算子 (->)、および構造体ポインタ演算子 (.) を含む C 構文を使って指定できます。オフセットは、MDB 算術展開の構文 ($[]) を使って指定できます。データ構造体を表示したあと、::print はドットを type のサイズ分 (バイト) だけインクリメントします。
-a | 各メンバーのアドレスが表示されます。 |
-i | 左側の式が即値とみなされ、指定された型を使って表示されます。 |
-p | ::print はアドレスを、仮想メモリーアドレスではなく、物理メモリーアドレスとして解釈します。 |
-t | 各メンバーの型が表示されます。 |
-d | または -x オプションを指定すると、すべての整数は 10 進数 (-d) または 16 進数 (-x) で表示されます。値を 10 進数または 16 進数のどちらで表示するかを決定するとき、デフォルトではヒューリスティックに行います。文字列として読み取りまたは表示される文字配列内の文字数は -c オプションで制限できます。 |
-C | 文字数は制限されません。読み取りまたは表示される標準配列内の要素数は -l オプションで制限できます。 |
-L | 文字数は制限されず、配列内のすべての要素が表示されます。 |
> 0000030000006da0::print -a vmem_t vm_seg0 > 0000030000006da0::print -a vmem_t vm_seg030000006e48 vm_seg0 = {30000006e48 vm_seg0.vs_start = 030000006e50 vm_seg0.vs_end = 030000006e58 vm_seg0.vs_knext = 0x300000227e030000006e60 vm_seg0.vs_kprev = 0x30000022c0830000006e68 vm_seg0.vs_anext = 0x30000006ee030000006e70 vm_seg0.vs_aprev = 0x30000022bd030000006e78 vm_seg0.vs_type = 0x1030000006e79 vm_seg0.vs_import = 030000006e7a vm_seg0.vs_depth = 030000006e80 vm_seg0.vs_thread = 030000006e88 vm_seg0.vs_timestamp = 030000006e90 vm_seg0.vs_stack = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]}
::set [ -wF ] [ +/-o option ] [ -s distance ] [ -I path ] [ -L path ] [ -P prompt ]
-F | その次のユーザープロセスで、::attach が適用されているプロセスを強制的に引き継ぎます (-F オプションをコマンド行に指定して MDB を実行する場合と同じ)。 |
-I | マクロファイルを検出するためのデフォルトパスを設定します。パス引数は特殊トークンを使用できます。 |
-L | デバッガモジュールを検出するためのデフォルトパスを設定します。パス引数は特殊トークンを使用できます。 |
-o | 指定されたデバッガオプションを有効にします。+o 書式が使用されている場合には、そのデバッガオプションを無効にします。 |
-P | コマンドプロンプトを、指定されたプロンプト文字列に設定します。 |
-s | シンボルマッチングディスタンスを指定された距離に設定します。を参照してください。 |
-w | ターゲットを書き込み用にもう一度開きます (-w オプションをコマンド行に指定して mdb を実行する場合と同じ)。 |
> ::set> ::setmacro path: /usr/platform/SUNW,Sun-Fire-T200/lib/adb/sparcv9/usr/platform/sun4v/lib/adb/sparcv9/usr/lib/adb/sparcv9module path: /usr/platform/SUNW,Sun-Fire-T200/lib/mdb/kvm/sparcv9/usr/platform/sun4v/lib/mdb/kvm/sparcv9/usr/lib/mdb/kvm/sparcv9symbol matching distance: 0 (smart mode)array member print limit: 32array string print limit: 1024command prompt: "> "debugger options: follow_exec_mode=ask, follow_fork_modeask, pager, stop_on_bpt_nosym, write_readbacktarget options: read-only
::showrev [ -pv ]
> ::showrev> ::showrevHostname: t2kh1ldom2Release: 5.11Kernel architecture: sun4vApplication architecture: sparcv9Kernel version: SunOS 5.11 sun4v 11.0Platform: SUNW,Sun-Fire-T200
::sizeof type
> ::sizeof kmem_cache_t> ::sizeof kmem_cache_tsizeof (kmem_cache_t) = 0x278
[ address ] ::stack [ count ]
> ::stack> ::stackpanicsys+0x48(f, 30008eb0000, 2a101299c60, 30016eb1290, 1, 183f800)vpanic+0xcc(10d4ce8, 2a1012993d8, 10d4c00, 2a101299c60, 1, 183f800)panic+0x1c(10d4ce8, 193a000, 0, c0, 2a101299400, 1)sync_handler+0x138(30008eb0000, 0, 10d4c00, 2a101299c60, 1, 183f800)vx_handler+0x94(2a101299580, 73, 19d7000, 1, 18482f8, 18481f0)promif_enter_mon+0xa8(183d000, c, 10da1e8, 10d9e40, 183d000, 10da000)kern_cif_handler+0x24(2a1012997a8, 0, 10dae58, 1, 183d400, 104efd0)client_handler+0x2c(104e63c, 2a1012997a8, 0, 18a7218, 1919000, 104e63c)prom_enter_mon+0x24(0, 0, 18ef000, 1, 183d400, 10dae58)debug_enter+0x10c(a, a, 1, 193f800, 183a400, 0)abort_seq_softintr+0xfc(0, 0, 183a400, 2a101299d40, 2, 1)intr_thread+0x258(16, 0, 1000000000000, 101010101010101, 1000000000000, 12)cpu_halt+0x104(1913b90, 1, 1913b90, 1913a58, 6, 30008eb0000)idle+0x120(183ec00, 7, 30008eb0000, 30008d65364, 183ed70, ffffffffffffffff)thread_start+4(0, 0, 0, 0, 0, 0)
::status
> ::status> ::statusdebugging crash dump vmcore.0 (64-bit) from t2kh1ldom2operating system: 5.11 11.0 (sun4v)image uuid: 3b516630-e7d2-c451-ba31-d7792ccd9fa2panic message: sync initiateddump content: kernel pages only
address ::vtop [-a as]
> 000000000180e000::vtop> 000000000180e000::vtopvirtual 180e000 mapped to physical 8180e000
[ address ] ::walk walker-name [ variable-name ]
対話処理で使用される場合、 ::walk dcmd は、データ構造体内の各要素のアドレスをデフォルト形式で出力します。また、この dcmd は、パイプラインにアドレスリストを提供するときにも使用できます。walker 名には、「dcmd と walker の名前解決」で説明した逆引用符「`」有効範囲規則を使用できます。オプションの variable-name が指定されている場合には、MDB がパイプラインの次のステージを呼び出すときに walk の各ステップが返す値に、指定変数が割り当てられます。
> ::walk kmem_cache |::print -a kmem_cache_t cache_name > ::walk kmem_cache |::print -a kmem_cache_t cache_name30000042070 cache_name = [ "kmem_magazine_1" ]3000004c070 cache_name = [ "kmem_magazine_3" ]30000056070 cache_name = [ "kmem_magazine_7" ]30000060070 cache_name = [ "kmem_magazine_15" ]3000006a070 cache_name = [ "kmem_magazine_31" ]30000074070 cache_name = [ "kmem_magazine_47" ]30000082070 cache_name = [ "kmem_magazine_63" ]3000008c070 cache_name = [ "kmem_magazine_95" ]30000096070 cache_name = [ "kmem_magazine_143" ]300000a0070 cache_name = [ "kmem_slab_cache" ]300000aa070 cache_name = [ "kmem_bufctl_cache" ]300000b4070 cache_name = [ "kmem_bufctl_audit_cache" ]::
0 件のコメント:
コメントを投稿