cygwin+OpenSSH+teraterm

2013/08/24
PuTTYはリモートコマンドで簡単に踏み台経由の接続を設定できるが、teratermはこういう使い方ができない。
ssh01
ログインしたあとで、マクロを使用して好きなようにコマンドを送信すればいいのだが、CygwinのOpenSSHをシェルとして起動すれば、リモートコマンドを実行することができる。マクロでは下記のように書けばよい。
msg = "-s '/bin/ssh -t " strconcat msg gwusername strconcat msg '@' strconcat msg gwhostname strconcat msg ' ssh ' strconcat msg username strconcat msg '@' strconcat msg hostname strconcat msg "' -o '/KR=UTF8 /KT=UTF8'" cygconnect msg
Read more ...

mdb写経/ネットワーク関連機能

2013/08/16

dcmds

address ::arphdr

指定されたアドレスの ARP header 構造体(arh_t) を表示する。


[ address ] ::conn_status

指定されたアドレスの display connection 構造体(conn_t)を表示する。 > ::conn_status ADDR WQ STACK ZONE SRC:PORT DEST:PORT 300143ecac0 0 0 0 0.0.0.0:68 0.0.0.0:0 3001729d600 0 0 0 :::69 :::0 30016959580 30016957340 0 0 0.0.0.0:111 0.0.0.0:0 30014885000 3001695dae8 0 0 :::111 :::0 30016958180 0 0 0 0.0.0.0:520 0.0.0.0:0 : :


[ address ] ::dce [-P v4 | v6] [-s exclusive-ip-zone-name]

Destination Cache Entry 構造体(dce_t)を表示する > ::dce ADDR FLAGS PMTU DST_ADDR ffffff00c77b4be8 0 16.231.223.255 ffffff00c77b4c80 0 16.231.223.255 ffffff00c77b4d18 0 ::1 ffffff00c77b4db0 0 16.231.223.255 ffffff00c77b4e48 0 16.231.223.255 ffffff00c77b4ee0 D 0


[ address ] ::ill [-v] [-P v4 | v6] [-s exclusive-ip-zone-name]

以下のフィールドを表示する : ill_t 構造体のポインタ, インターフェイス名, IP バージョン, カウント, ill タイプと ill フラグ。カウントフィールドは、個々の refcnts の合計であり、-v オプションを指定すると展開される。 > ::ill ADDR NAME VER TYPE CNT WQ FLAGS ffffff00c9c3a248 lo0 v4 LOOPBACK 4 0 R,V,M ffffff00c96beda8 net0 v4 ETHER 26 ffffff00ca7eab80 R,M ffffff00c93eeb88 lo0 v6 LOOPBACK 5 0 R,V,M ffffff00c96bf228 net0 v6 ETHER 19 ffffff00ce493b90 R,M > ffffff00c96beda8::ill -v ADDR NAME VER TYPE WQ IPST FLAGS PHYINT CNT GROUP ffffff00c96beda8 net0 v4 ETHER ffffff00ca7eab80 ffffff00c6574000 RUNNING,MULTICAST ffffff00ca77abc8 26 0 | +--> 0 ill_refcnt references from active threads 10 ill_ire_cnt ires referencing this ill 7 ill_nce_cnt nces referencing this ill 7 ill_ncec_cnt ncecs referencing this ill 2 ill_ilm_cnt ilms referencing this ill


[ address ] ::illif [-P v4 | v6]

下位レベルの IP インタフェース構造を表示する。 > ::illif ADDR IP AVLADDR NUMNODES ARENA NAME ffffff00c9ccf5c0 v4 ffffff00c9ccf5d0 1 0 lo ffffff00c9cd2c88 v4 ffffff00c9cd2c98 1 0 net ffffff00c9c103e0 v6 ffffff00c9c103f0 1 0 lo ffffff00c9cd18d0 v6 ffffff00c9cd18e0 1 0 net


[ address ] ::ipif [-v] [-P v4 | v6]

以下のフィールドを表示する : ipif_t 構造体ポインタ, インターフェイス名, カウント, ill_t 構造体ポインタ, ステータスフラグと ipif フラグ。カウントフィールドは、個々の refcnts の合計であり、-v オプションを指定すると展開される。

フラグ:
UNN UNNUMBERED
DHCP DHCPRUNNING
PRIV PRIVATE
NOXMT NOXMIT
NOLCL NOLOCAL
DEPR DEPRECATED
PREF PREFERRED
TEMP TEMPORARY
ACONF ADDRCONF
ANY ANYCAST
NFAIL NOFAILOVER
ADR ipif_addr_ready
MU ipif_multicast_up
WU ipif_was_up
WD ipif_was_dup
JA ipif_joined_allhosts
> ::ipif ADDR NAME CNT ILL STFLAGS FLAGS LCLADDR ffffff00c9cce7a8 lo0 0 ffffff00c9c3a248 UP,ADR 127.0.0.1/8 ffffff00c9bc7ce0 net0 0 ffffff00c96beda8 UP,ADR 192.168.0.35/24 ffffff00c9cceb28 lo0 0 ffffff00c93eeb88 UP,ADR ::1/128 ffffff00c9bc7340 net0 0 ffffff00c96bf228 UP,DHCP,ADR fe80::5054:ff:fe42:3c90/10 > ::ipif -v ADDR NAME CNT ILL STFLAGS FLAGS LCLADDR BROADCAST ffffc10006466dd0 lo0 0 ffffc100052f5908 UP,ADR | +---> 0 ipif_refcnt Active consistent reader cnt 127.0.0.1/8 0.0.0.0 ffffc10006fd4458 net0 0 ffffc100065214a8 UP,ADR | +---> 0 ipif_refcnt Active consistent reader cnt 192.168.0.35/24 192.168.0.255 ffffc100058f0858 vnic10 0 ffffc10006522b28 UP,ADR | +---> 0 ipif_refcnt Active consistent reader cnt 172.16.0.254/24 172.16.0.255 : :


[ address ] ::ire [-v] [-P v4|v6] [-s exclusive-ip-zone-name]

指定された ire_t 構造体、またはカーネルのアクティブな ire_t 構造体のテーブルを出力する。

> ::ire ADDR SRC DST STACK ZONE INTF ffffc1000729f018 0.0.0.0 192.168.0.2 0 0 net0 ffffc1000729f178 0.0.0.0 192.168.0.1 0 0 net0 ffffc1000729f2d8 0.0.0.0 172.16.0.255 0 0 vnic10 ffffc1000729f438 0.0.0.0 192.168.0.35 0 0 net0 ffffc1000729f598 :: fe80:: 0 0 vnic10 ffffc1000729f6f8 :: ff00::100:0 0 -1 vnic10 ffffc1000729f858 0.0.0.0 172.16.0.254 0 0 vnic10 ffffc1000729f9b8 0.0.0.0 172.16.0.0 0 0 vnic10 ffffc1000729fb18 0.0.0.0 0.0.0.0 0 0 vnic10 : :


[ address ] ::mac_flow [-u] [-aprtsm]

Flow Entry 構造体を表示する。アドレスが指定されている場合は、そのアドレスの flow_entry_t 構造体を表示する。そうでない場合は、システム内のすべてのフローが出力される。

オプション:

-u ユーザ定義されたリンク&VNICフローを表示する
-a フロー属性を表示する
-p プロープロパティを表示する
-r 受信側の情報を表示する
-t 送信側の情報を表示する
-s 静的フローを表示する
-m その他のフロー情報を表示する

Flow Types:
P FLOW_PRIMARY_MAC
V FLOW_VNIC_MAC
M FLOW_MCAST
O FLOW_OTHER
U FLOW_USER
NS FLOW_NO_STATS

Flow Flags:
Q FE_QUIESCE
W FE_WAITER
T FE_FLOW_TAB
G FE_G_FLOW_HASH
I FE_INCIPIENT
C FE_CONDEMNED
NU FE_UF_NO_DATAPATH
NC FE_MC_NO_DATAPATH
※参考 Project Crossbow - Introducing data structures > ::mac_flow LINK MIP ADDR FLOW NAME ID MCIP MIP NAME ZID ffffc10007c26870 mac/rtls0/mcast14 0 0 0 0 ffffc10006639008 vsw2 0 ffffc10005d64b40 ffffc10006624340 vnic1004 0 ffffc1000663e6c0 vnic12 0 ffffc10005d650c0 ffffc10006630940 vnic1000 0 ffffc10006643d78 vnic11 0 ffffc10005d65640 ffffc10006630940 vnic1000 0 ffffc10006649430 mac/vnic1000/mcast1 0 0 0 0 ffffc1000664eae8 vnic10 0 ffffc10005d65bc0 ffffc10006630940 vnic1000 0 ffffc100066541a0 vsw1 0 ffffc10005d66140 ffffc10006630940 vnic1000 0 ffffc10006659858 net0 0 ffffc10005d666c0 ffffc10006633ac0 rtls0 0 ffffc10007391018 mac/vnic1000/mcast11 0 0 0 0 ffffc100073966d0 mac/vnic1000/mcast10 0 0 0 0 ffffc1000739bd88 mac/vnic1000/mcast13 0 0 0 0 : : > ::mac_flow -m ADDR FLOW NAME TYPE FLAGS MATCH_FN ZONE ffffc10007c26870 mac/rtls0/mcast14 M T flow_l2_match ffffc10006639008 vsw2 ND ffffc1000663e6c0 vnic12 V T flow_l2_match ffffc10006643d78 vnic11 V T flow_l2_match ffffc10006649430 mac/vnic1000/mcast1 M T flow_l2_match ffffc1000664eae8 vnic10 V T flow_l2_match ffffc100066541a0 vsw1 ND ffffc10006659858 net0 P T flow_l2_match ffffc10007391018 mac/vnic1000/mcast11 M T flow_l2_match ffffc100073966d0 mac/vnic1000/mcast10 M T flow_l2_match ffffc1000739bd88 mac/vnic1000/mcast13 M T flow_l2_match : :


address ::mi [-p] [-d | -m]

指定されたカーネル MI_O を使用して、MI_O またはそのペイロードをフィルタリングおよび表示する。

オプション:

-p MI_O に対応するペイロードのアドレスが表示され、指定しないとMI_O 自身が表示される
-d 指定したデバイスの MI_O オブジェクトのみを表示する
-m 指定したモジュールの MI_O オブジェクトのみを表示する


[ address ] ::nce [-P v4 | v6] [-i <interface>]

Neighbor Cache 構造体を表示する。 > ::nce ADDR INTF LLADDR FP_MP REFCNT NCE_ADDR ffffff00ca2599a8 net0 14:da:e9:01:5f:d4 ffffff00cf4cc780 3 192.168.0.2 ffffff00ca259a58 net0 33:33:00:01:00:02 ffffff00cf4cc9c0 1 ff02::1:2 ffffff00ca259ab0 net0 01:00:5e:00:00:02 ffffff00cf4ccd40 2 224.0.0.2 ffffff00ca259b08 net0 ff:ff:ff:ff:ff:ff ffffff00cf2ab820 2 192.168.0.255 ffffff00ca259b60 net0 01:00:5e:00:00:09 ffffff00cf2abaa0 1 224.0.0.9 ffffff00ca259bb8 net0 33:33:00:00:02:02 ffffff00cf2ab5e0 1 ff02::202 ffffff00ca259c10 net0 33:33:00:00:00:02 ffffff00cf2ab620 2 ff02::2 ffffff00ca259c68 net0 52:54:00:9c:47:8c ffffff00ce486320 2 192.168.0.5 ffffff00ca259cc0 net0 90:e6:ba:2e:9d:21 ffffff00ce4864e0 3 192.168.0.1 ffffff00ca259d18 net0 33:33:00:00:00:01 ffffff00ce49f040 1 ff02::1 ffffff00ca259d70 net0 33:33:00:00:00:16 ffffff00ce463360 1 ff02::16 : :


[ address ] ::ncec [-P v4 | v6]

Neighbor Cache Entry 構造体を表示する。 > ::ncec ADDR HW_ADDR STATE FLAGS ILL IP ADDR ffffff00ca25ad50 52:54:00:42:3c:90 reachable P net0 192.168.0.35 ffffff00ca25a3f0 90:e6:ba:2e:9d:21 reachable net0 192.168.0.1 ffffff00ca25a328 14:da:e9:01:5f:d4 reachable net0 192.168.0.2 ffffff00ca25a968 52:54:00:9c:47:8c reachable net0 192.168.0.5 ffffff00ca25aee0 None reachable P lo0 127.0.0.1 ffffff00ca25a648 ff:ff:ff:ff:ff:ff reachable P,B net0 192.168.0.255 ffffff00ca25a580 01:00:5e:00:00:02 reachable P net0 224.0.0.2 ffffff00ca25a710 01:00:5e:00:00:09 reachable P net0 224.0.0.9 ffffff00ca25a7d8 33:33:00:00:02:02 reachable P net0 ff02::202 ffffff00ca25aa30 33:33:00:00:00:01 reachable P net0 ff02::1 ffffff00ca25ae18 None reachable P lo0 ::1 ffffff00ca25a8a0 33:33:00:00:00:02 reachable P net0 ff02::2 ffffff00ca25a4b8 33:33:00:01:00:02 reachable P net0 ff02::1:2 ffffff00ca25aaf8 33:33:00:00:00:16 reachable P net0 ff02::16 : :


::netstat [-av] [-f inet | inet6 | unix] [-P tcp | udp]

ネットワークの統計とアクティブな接続を表示する。
-a すべてのソケットの状態を表示する
-v より詳細な出力を表示する
-f 指定したアドレスファミリに関連する接続だけを表示する
-P 指定したプロトコルに関連する接続だけを表示する
> ::netstat AF_UNIX Type Vnode Conn Local Addr Remote Addr Zone ffffff00cfbd6bd8 stream-ord ffffff00cf8de800 0000000000000000 /var/run/radsocket-unauth (none) 0 ffffff00cf4ce030 stream-ord ffffff00cf8dec00 0000000000000000 /var/run/radsocket (none) 0 ffffff00cf4ce410 dgram ffffff00cf2ac180 0000000000000000 /system/volatile/in.rdisc_mib (none) 0 ffffff00cf4ce7f0 stream-ord ffffff00cf4d3040 0000000000000000 /system/volatile/inetd.uds (none) 0 ffffff00cf2a5028 dgram ffffff00cf4a9b40 0000000000000000 /system/volatile/in.ndpd_mib (none) 0 ffffff00cf2a5408 stream-ord ffffff00cf4a9940 0000000000000000 /system/volatile/in.ndpd_ipadm (none) 0 ffffff00cf2a57e8 stream-ord 0000000000000000 0000000000000000 /var/run/dbus/system_bus_socket 0 ffffff00cf2a5bc8 stream-ord 0000000000000000 0000000000000000 /var/run/dbus/system_bus_socket 0 ffffff00cea90020 stream-ord 0000000000000000 ffffff00ce909140 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea90400 stream-ord 0000000000000000 ffffff00cd876d40 /var/run/dbus/system_bus_socket 0 ffffff00cea907e0 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea90bc0 stream-ord 0000000000000000 ffffff00cd876d40 /var/run/dbus/system_bus_socket 0 ffffff00cea95018 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea953f8 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea957d8 stream-ord 0000000000000000 ffffff00ce909140 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea95bb8 stream-ord 0000000000000000 ffffff00ce909140 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00ce487010 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-7MhanEXm6c 0 ffffff00ce4873f0 stream-ord ffffff00ce909140 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm (none) 0 ffffff00ce4877d0 stream-ord ffffff00ce8aac80 0000000000000000 /var/run/cups-socket (none) 0 ffffff00ce487bb0 stream-ord 0000000000000000 ffffff00ce9c7800 /system/volatile/hald/dbus-7MhanEXm6c 0 ffffff00cdabb008 stream-ord 0000000000000000 0000000000000000 (socketpair) (socketpair) 0 ffffff00cdabb3e8 stream-ord 0000000000000000 0000000000000000 (socketpair) (socketpair) 0 ffffff00cdabb7c8 stream-ord ffffff00ce9c7800 0000000000000000 /system/volatile/hald/dbus-7MhanEXm6c (none) 0 ffffff00cdabbba8 stream-ord ffffff00cd876d40 0000000000000000 /var/run/dbus/system_bus_socket (none) 0 TCPv4 State Local Address Remote Address Stack Zone ffffff00ca5ec380 0 192.168.0.35.22 192.168.0.2.33102 0 0 TCPv6 State Local Address Remote Address Stack Zone UDPv4 State Local Address Remote Address Stack Zone fffffd7fffdfe600 IDLE 0.0.0.0.40278 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.50485 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.631 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.520 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.546 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.111 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.111 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.68 0.0.0.0.0 0 0 UDPv6 State Local Address Remote Address Stack Zone fffffd7fffdfe600 IDLE ::.40278 ::.0 0 0 fffffd7fffdfe600 IDLE ::.546 ::.0 0 0 fffffd7fffdfe600 IDLE ::.111 ::.0 0 0 ICMPv4 State Local Address Remote Address Stack Zone fffffd7fffdfe6b0 IDLE 0.0.0.0.0 0.0.0.0.0 0 0 ICMPv6 State Local Address Remote Address Stack Zone fffffd7fffdfe6b0 IDLE ::.0 ::.0 0 0 SDPv4 State Local Address Remote Address Stack Zone SDPv6 State Local Address Remote Address Stack Zone


[ address ] ::sonode [-f inet | inet6 | unix | id] [-t stream | dgram | raw | id] [-p id ]

sonode オブジェクトをフィルタリングおよび表示する。アドレスの指定がないと、AF_UNIX ソケットのリストを表示する。

オプション:
-f 指定したファミリのソケットだけが表示される
-t 指定した種類の sonode だけが表示する
-P 指定したプロトコルのソケットだけが表示する
> ::sonode Sonode: Family Type Proto State Mode Flag AccessVP ffffff00cfbd67f8 unix strm 0 00000 01f8 0000 ffffff00cfbd6bd8 unix strm 0 00220 01f8 0000 ffffff00cf4ce030 unix strm 0 00220 01f8 0000 ffffff00cf4ce410 unix dgrm 0 000a0 0156 0000 ffffff00cf4ce7f0 unix strm 0 002a0 01f8 0000 ffffff00cf4cebd0 unix dgrm 0 000a0 0156 0000 ffffff00cf2a5028 unix dgrm 0 000a0 0156 0000 ffffff00cf2a5408 unix strm 0 00220 01f8 0000 ffffff00cf2a57e8 unix strm 0 000a1 01f8 0003 ffffff00cf2a5bc8 unix strm 0 000a1 01f8 0003 ffffff00cea90020 unix strm 0 000a1 01f8 0003 : :


[address] ::squeue [-v]

与えられた NCA squeue_t 構造体の情報を表示する。 > ::squeue -v ADDR STATE CPU FIRST LAST WORKER ffffff00c77beb80 00200 -1 0000000000000000 0000000000000000 ffffff00029d8c20 | +--> SQS_ILL_BOUND squeue bound to an ill ADDR STATE CPU FIRST LAST WORKER ffffff00c77bec40 00820 3 0000000000000000 0000000000000000 ffffff000235ac20 | +--> SQS_BOUND worker thread bound to CPU SQS_DEFAULT the default squeue for the CPU : :


walker

icmp

指定された icmp のアドレスを使用して、指定された icmp から最後の icmp までのすべての icmp オブジェクトを調べる。アドレスを指定しないと、すべての icmp オブジェクトを調べる。

ill

指定されたインタフェースリンク層構造体 (ill_t) のアドレスを使用して、指定された ill から最後の ill までのすべての ill オブジェクトを調べる。アドレスを指定しないと、すべての ill オブジェクトを調べる。 > ::walk ill |::print ill_t ill_name ill_name = 0x3000beaf600 "lo0" ill_name = 0x30014022808 "net0" ill_name = 0x3000beb2380 "lo0" ill_name = 0x3000c7fdd48 "net0"


ip_stacks

ip_stack_t を調べる。 > ::walk ip_stacks |::print ip_stack_t ips_icmp_mib.icmpOutDrops ips_icmp_mib.icmpOutDrops = 0x5a4

mi

指定された MI_O のアドレスを使用して、この MI 内にあるすべての MI_O を調べる。

sonode

指定された AF_UNIX sonode を使用して、指定された sonode から始まる関連する AF_UNIX sonode のリストを調べる。アドレスを指定しないと、すべての AF_UNIX ソケットのリストを調べる。 > ::walk sonode |::print sonode_t so_vnode so_vnode = 0x3001737fc80 so_vnode = 0x3001742a140 so_vnode = 0x300171ed140 so_vnode = 0x30016eaf180 so_vnode = 0x30016a1b140 so_vnode = 0x30016a1b340 : :


tcp_stacks

tcp_stack_t を調べる。 > ::walk tcp_stacks |::print tcp_stack_t tcps_mib.tcpOutDataBytes tcps_mib.tcpOutDataBytes = 0x259bd

udp_stacks

udp_stack_t を調べる。 > ::walk udp_stacks |::print udp_stack_t us_udp_mib { us_udp_mib.udpInDatagrams = 0 us_udp_mib.udpInErrors = 0 us_udp_mib.udpOutDatagrams = 0 us_udp_mib.udpEntrySize = 0x28 us_udp_mib.udp6EntrySize = 0x40 us_udp_mib.udpOutErrors = 0 us_udp_mib.udpHCInDatagrams = 0x83 us_udp_mib.udpHCOutDatagrams = 0x81 }


ire

カーネルのアクティブな ire (Internet Route Entry) 構造体を調べる。 > ::walk ire |::print ire_t ire_u.ire4_u.ire4_addr ire_u.ire4_u.ire4_addr = 0xc0a80a83 ire_u.ire4_u.ire4_addr = 0xc0a80a91 ire_u.ire4_u.ire4_addr = 0xc0a80a87 ire_u.ire4_u.ire4_addr = 0xc0a80aab ire_u.ire4_u.ire4_addr = 0xc0a80a03 ire_u.ire4_u.ire4_addr = 0 ire_u.ire4_u.ire4_addr = 0xffffffff ire_u.ire4_u.ire4_addr = 0 : :
Read more ...

mdb写経/カーネルメモリーアロケータ

2013/08/16

dcmds

thread ::allocdby
指定されたカーネルスレッドのアドレスを使用して、そのスレッドが割り当てたメモリーのリストを新しい順に出力します。
> fffffffffbc36de0::allocdby BUFCTL TIMESTAMP CALLER ffffff00cb845af8 b8483496d47c callb_add_common+0x81 ffffff00cb9f6cb8 b8483496b2e1 lgrp_affinity_init+0x26 ffffff00cbabd588 b8483496ac9f audit_thread_create+0x1e ffffff00cbace658 b84834966817 segkp_get_internal+0x89 ffffff00cb5d7308 b8483496649e thread_create+0x4f ffffff00cb9f6be0 b84834961b3c lgrp_affinity_init+0x26 ffffff00cbabd4b0 b84834961204 audit_thread_create+0x1e ffffff00cbace580 b8483495d379 segkp_get_internal+0x89 ffffff00cb9fa468 b84834945c0d vmem_alloc+0x1d2 ffffff00cb5d7158 b848349455b0 thread_create+0x4f ffffff00cbac8040 b8483493f28b lwp_create+0x78e ffffff00cb5d42f0 b8483493ef34 lwp_create+0x709 : :
bufctl ::bufctl [- a address] [-c caller ] [-e earliest] [- l latest] [-t thread ]
指定された bufctl 構造体についての要約を出力します。1 つまたは複数のオプションが指定されている場合は、オプション引数によって定義される条件に一致する bufctl 構造体の情報だけが出力されます。したがって、この dcmd をパイプラインの入力のフィルタとして使用できます。
-a buctl の対応するバッファーアドレスが指定されたアドレスと等しくなるように指定します
-c 指定された呼び出し元のプログラムカウント値が bufctl の保存されているスタックトレースの中に存在するように指定しま。
-e bufctl の時刻表示が、指定されたもっとも早い時刻表示と同じかそれよりも遅い時刻になるように指定します
-l bufctl の時刻表示が、指定されたもっとも遅い時刻表示と同じかそれよりも早い時刻になるように指定します
-t bufctl のスレッドポインタが、指定されたスレッドアドレスと等しくなるように指定します
> ffffff00cb845af8::bufctl -v ADDR BUFADDR TIMESTAMP THREAD CACHE LASTLOG CONTENTS ffffff00cb845af8 ffffff00cb6543c8 b8483496d47c fffffffffbc36de0 ffffff00c502a008 ffffff00c5c61200 ffffff00c6d99740 kmem_cache_alloc_debug+0x2b1 kmem_cache_alloc+0x14c kmem_zalloc+0x66 callb_add_common+0x81 callb_add+0x48 sched+0x5a main+0x513 _locore_start+0x90
[ address ] ::findleaks [-v]
フルセットの kmem デバッギング機能が有効になっている場合に、カーネルクラッシュダンプ時に効率的にメモリーリークを検出します。::findleaks の最初の実行では、ダンプを処理してメモリーリークを探します。この処理には数分かかる場合があります。次に、割り当てスタックトレース別にリークがまとめられます。findleaks レポートには、識別されたメモリーリークごとに bufctl アドレスと先頭のスタックフレームが表示されます。
-v オプションが指定されている場合には、この dcmd は実行の際により詳細なメッセージを出力します。dcmd の前に明示的にアドレスが指定されている場合には、レポートがフィルタリングされ、割り当てスタックトレースに指定された関数アドレスが含まれているリークだけが表示されます。

thread ::freedby
指定されたカーネルスレッドのアドレスを使用して、そのスレッドが解放したメモリーのリストを新しい順に出力します。

value ::kgrep
カーネルアドレス空間の中で、指定されたポインタサイズ値を含んでいるポインタ整列アドレスを検索します。次に、一致する値を含んでいるアドレスのリストを出力します。MDB の組み込み検索演算子とは異なり、::kgrep はカーネルアドレス空間のすべてのセグメントを検索し、不連続セグメント境界にまたがって検索します。大きなカーネルでは、::kgrep は実行にかなりの時間がかかる場合があります。

::kmalog [ slab | fail ]
カーネルメモリーアロケータトランザクションログ内のイベントを表示します。イベントは新しい順に (つまり、最新のイベントから) 表示されます。::kmalog は、イベントごとに、「T-」表示による最新のイベントを基準にした相対時間 (たとえば、T-0.000151879)、bufctl、バッファーアドレス、kmem キャッシュ名、およびイベント発生時刻におけるスタックトレースを表示します。引数を指定しないと、::kmalog は kmem トランザクションログを表示しますが、このログは kmem_flags で KMF_AUDIT が設定されている場合にだけ存在します。::kmalog fail は、割り当て障害ログを表示します。このログは必ず存在します。これは、割り当て障害に正しく対処できないドライバのデバッグを行う場合に役立ちます。::kmalog slab は、スラブ作成ログを表示します。このログは必ず存在します。::kmalog slab は、メモリーリークの検索を行う場合に役立ちます。
> ::kmalog T-0.000000000 addr=ffffff00dc6edd80 anon_cache kmem_cache_alloc_debug+0x2b1 kmem_cache_alloc+0x14c anon_alloc+0x2d anon_zero+0x3c segvn_faultpage+0x2a6 segvn_fault+0xb78 as_fault+0x3e7 pagefault+0x99 trap+0x13d8 0xfffffffffb8001d6 0xfffffffffb85b60a uiomove+0xeb mmio+0x148 mmrw+0x1bb mmread+0x22 : :
::kmastat
カーネルメモリーアロケータキャッシュおよび仮想メモリー領域のリストと該当する統計を表示します。
> ::kmastat cache buf buf buf memory alloc alloc name size in use total in use succeed fail ------------------------- ------ ------ ------ ---------- --------- ----- kmem_magazine_1 16 1364 1506 24576B 1364 0 kmem_magazine_3 32 1228 1250 40960B 1228 0 kmem_magazine_7 64 1082 1116 73728B 1082 0 kmem_magazine_15 128 9412 9424 1245184B 9569 0 kmem_magazine_31 256 0 150 40960B 142 0 kmem_magazine_47 384 103 110 45056B 103 0 kmem_magazine_63 512 0 0 0B 0 0 kmem_magazine_95 768 0 0 0B 0 0 kmem_magazine_143 1152 0 0 0B 0 0 kmem_slab_cache 72 11744 11770 876544B 11744 0 kmem_bufctl_cache 24 46691 46760 1146880B 46691 0 kmem_bufctl_audit_cache 192 0 0 0B 0 0 : :
::kmausers [- ef] [cache ...]
カーネルメモリーアロケータの現在のメモリーの割り当てが中程度あるいは多いユーザーに関する情報を出力するこの出力は、一意的なスタックトレースごとに 1 つのエントリで構成され、そのスタックトレースを使用して作成された合計メモリー量と割り当ての数が示されます。この dcmd を使用するには、kmem_flags で KMF_AUDIT フラグが設定されている必要があります。
1 つまたは複数のキャッシュ名 (たとえば、kmem_alloc_256) が指定されている場合、メモリー使用率の走査はそれらのキャッシュでだけ行われます。デフォルトでは、すべてのキャッシュが含まれます。-e オプションを指定すると、割り当て量の少ないユーザーが含まれます。割り当ての少ないユーザーとは、同じスタックトレースの合計メモリーが 1024 バイト未満または割り当て数 10 未満であるような割り当てのことです。-f オプションを指定すると、個々の割り当てのスタックトレースが出力されます。
> ::kmausers 197001216 bytes for 1503 allocations with data size 131072: kmem_slab_alloc_impl+0xbe kmem_slab_alloc+0xb0 kmem_cache_alloc+0x267 vmem_alloc+0x1d2 segkmem_xalloc+0x94 segkmem_alloc_vn+0xcb segkmem_zio_alloc+0x24 vmem_xalloc+0x53e vmem_alloc+0x172 kmem_slab_create+0x81 kmem_slab_alloc+0x60 kmem_cache_alloc+0x267 zio_data_buf_alloc+0x29 arc_get_data_block+0x153 arc_read+0x2af : :
[ address ] ::kmem_cache [-n name]
指定されたアドレスに格納されている kmem_cache_t 構造体、またはアクティブ kmem_cache 構造体の完全なセットをフォーマットし、表示します。
> ::kmem_cache ADDR NAME FLAG CFLAG BUFSIZE BUFTOTL ffffff00c5021008 kmem_magazine_1 0000 080000 16 1506 ffffff00c5021348 kmem_magazine_3 0000 080000 32 1375 ffffff00c5021688 kmem_magazine_7 0000 080000 64 3658 ffffff00c50219c8 kmem_magazine_15 0000 080000 128 9424 ffffff00c5022008 kmem_magazine_31 0000 080000 256 150 ffffff00c5023348 kmem_slab_cache 0000 080000 72 13530 ffffff00c5023688 kmem_bufctl_cache 0000 080000 24 56947 ffffff00c50239c8 kmem_bufctl_audit_cache 0000 080000 192 0 ffffff00c5024008 kmem_va_4096 0200 110000 4096 13792 ffffff00c5024348 kmem_va_8192 0200 110000 8192 352 ffffff00c5024688 kmem_va_12288 0200 110000 12288 60 ffffff00c50249c8 kmem_va_16384 0200 110000 16384 3136 ffffff00c5026008 kmem_va_20480 0200 110000 20480 24 ffffff00c5027008 kmem_alloc_8 0000 200000 8 17102 ffffff00c5027348 kmem_alloc_16 0000 200000 16 13052 ffffff00c5027688 kmem_alloc_24 0000 200000 24 17869 ffffff00c50279c8 kmem_alloc_32 0000 200000 32 22500 ffffff00c5028008 kmem_alloc_40 0000 200000 40 3600 ffffff00c5028348 kmem_alloc_48 0000 200000 48 26228 ffffff00c5028688 kmem_alloc_56 0000 200000 56 9017 ffffff00c50289c8 kmem_alloc_64 0000 200000 64 9982 : :
[ address ] ::kmem_dump [-l]
クラッシュダンプが処理されている間に記録された kmem の利用を確認してください。
カーネルは、ダンプに使用する小さい代替ヒープを有します。このダンプ・ヒープオーバーフローは、通常の管理された kmem ヒープが代わりに使用されなければならない。この場合、メモリがダンプされている間に、kmem キャッシュの状態が変化し、一貫性のない状態になります。::findleaks と、::kmem_verify は、このような破損したバッファ、または行方不明のスラブのエントリーなど、様々なエラーを報告することがあります。::kmem_dump がオーバーフローを示していたり、問題になっているキャッシュが安全でない割り当てをしている場合、エラーメッセージは信頼することはできません。
オプションを指定しない場合、コマンドはダンプ・ヒープ使用量の要約を出力します。-l が指定されている場合、ダンプ中にアクセスされたすべての kmem キャッシュのリストを表示します。アドレスが提供されている場合は、addrで表される kmem_cache_t 構造体の活動をダンプを表示します。
HEADINGS
overflows ダンプヒープ後にオーバーフローしたalloc命令の回数
size ダンプヒープのサイズ(bytes)
hi-water 必要とされたダンプヒープの最大値
oversize 通常のallocより大きい
used 使用されたダンプエリアのサイズ, 内部断片化が含まれています
% used 使用されたダンプエリア: 0-100%
Cache headings:
Addr kmem_cache_t 構造体のアドレス
Flg U ダンプ時の使用で、常に安全でない場合
O オーバーフロー alloc が発生した場合
Alloc ダンプアロケーションの回数
Free ダンプ開放の回数
Overflow ダンプヒープのオーバーフローの回数
Nondump 非ダンプヒープの数
> ::kmem_dump -l overflows 0 size 0x20000 used 0x4668 % used 13 hi-water 0x4668 Cache Name Addr Flg Alloc Free Ovrflow Nondump kmem_alloc_768 ffffc1000002b2c8 377 377 0 0 kmem_alloc_1152 ffffc1000002b848 30 30 0 0 kmem_alloc_2048 ffffc1000002c2c8 44 44 0 0 kmem_alloc_2688 ffffc1000002c588 53 53 0 0 kmem_alloc_4096 ffffc1000002c848 148 148 0 0 streams_mblk ffffc10000035b08 4 0 0 0 streams_dblk_64 ffffc10000036008 2 0 0 1 streams_dblk_256 ffffc10000036848 2 0 0 1 rootnex_dmahdl ffffc10000568848 377 377 0 0 ::kmem_log
kmem トランザクションログの完全なセットを新しい順にソートして表示します。この dcmd は、::kmalog より簡単な表形式で出力します。
> ::kmem_log CPU ADDR BUFADDR TIMESTAMP THREAD ffffff00c61481c0 ffffff00ca0a6f60 13035b1c42df7 ffffff00020a1c20 ffffff00c6148100 ffffff00cac82e00 13035b1c42ccf ffffff00020a1c20 ffffff00c6148040 ffffff00d6411cc0 13035b1c4217d ffffff00020a1c20 ffffff00c6147f80 ffffff00c77aac40 13035b1c41f74 ffffff00020a1c20 ffffff00c6147ec0 ffffff00c77a9300 13035b1c41925 ffffff00020a1c20 ffffff00c6147e00 ffffff00cca7f7c0 13035b1c4162e ffffff00020a1c20 : : 3 ffffff00c6257cc0 ffffff00c77a9300 13035b1b75549 ffffff00dae9c080 3 ffffff00c6257c00 ffffff00c77a9300 13035b1b6bef7 ffffff00dae9c080 3 ffffff00c6257b40 ffffff00cb98d300 13035b1b6bacd ffffff00dae9c080 0 ffffff00c6147bc0 ffffff00ca0a6f60 13035b1b66d1c ffffff0002272c20 0 ffffff00c6147b00 ffffff00cac82e00 13035b1b66ab5 ffffff0002272c20 0 ffffff00c6147a40 ffffff00d19f1380 13035b1b665b2 ffffff0002272c20 0 ffffff00c6147980 ffffff00d6412f00 13035b1b660bd ffffff0002272c20 1 ffffff00c598e8c0 ffffff00c8d72700 13035b1b62f29 ffffff00cd59d0e0 1 ffffff00c598e800 ffffff00cb995a00 13035b1b62caa ffffff00cd59d0e0 1 ffffff00c598e740 ffffff00c8d72e80 13035b1b4e6ef ffffff00cd59d0e0 : :
[ address ] ::kmem_slabs [-v] [-n cache] [-N cache] [-b maxbins] [-B minbinsize]
kmem cache ごとの slab の使用状況を表示する。
-n name 指定した名前の kmem_cache 構造体の情報を表示します(名前の一部が一致したものを含む)
-N name 正確に名前が一致した kmem_cache 構造体の情報を表示します
-b maxbins アロケートされていないメモリは "bin" と呼ばれる同じサイズの chunk のグループに分けて管理されます。このオプションでは、スラブごとに割り当てられたバッファの分布を maxbins に分割して表示します。最初の bin は完全に割り当てられたスラブ用に予約されています。 maxbins に 0 を設定 (-b 0) すると、スラブごとの最大割り当てられたバッファを指定するか、minbinsize に 1 を設定する (-B 1) のと同じ効果があります
-B minbinsize 全ての bin を、少なくとも minbinsize バッファで分割して(完全に割り当てられたスラブの予約をまず除く)、スラブごとの割り当てられたバッファの分布を表示します
-v 詳細出力:使用法によって順序付けられているスラブがどの程度を示すために、前から後に順に空きリスト上の各部分スラブの割り当てられたバッファ数を一覧表示します
例:
10 complete, 3 partial (8): 7 3 1

それぞれ 8 つのバッファを持つ 13 のスラブが存在することを意味します。8 つの割り当てられたすべてのバッファよりも少ない、3つの部分的に割り当てられたスラブを含みます。
バッファ割り当ては、常に部分スラブリストの先頭から行われます。完全に使用されたスラブからバッファが解放されると、そのスラブは、部分スラブなリストの先頭に追加されます。すべてのバッファは等しくすぐに解放される可能性があると仮定すると、部分的なスラブが要求される順序は、最も使用されるものがリストの先頭に、最も使用されないものが末尾にあります(上記の例のように)。
しかしながら、すぐに解放されない割り当てられたバッファがスラブに含まれている場合は、そのすべての割り当て可能なバッファの前方にあるほうが良いでしょう。部分的なスラブリストからスラブを取得すると、キャッシュの断片化が減少します(すべてのバッファが解放されたか、すべてのバッファが割り当てられたかのいずれか)。
部分的なスラブを表す、スラブの割り当てられたバッファ数がマークされることがあります(下の例では 9)。
9* のアスタリスクは、kmem のクライアントが、スラブのバッファの移動を拒否したため、kmem が、スラブを非再生可能としてマークしていたことを示しています。なので、kmem はスラブを完全に解放することを期待していないので、代わりにそれを完全に割り当てることを希望して、リストの先頭に移動します。アスタリスクでマークされたスラブは、それが部分的なスラブ・リストに残っている限り、マークされたままになります。
Column Description
Cache Name kmem キャッシュの名前
Slabs スラブの数
Partial Slabs フリーリストの部分的に確保されたスラブの数
Buffers バッファ数 (Slabs * (buffers per slab))
Unused Buffers 部分スラブの確保されていないバッファーの数
Waste (Unused Buffers / Buffers) アカウンティング構造(デバッグモード)、スラブカラーリング(バッファの配置をずらすための小さなオフセットの増分)、または CPU ごとのマガジン層のためのスペースは含まれません
> ::kmem_slabs Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_1 20 1 2000 93 4.7% kmem_magazine_3 133 1 8246 56 0.7% kmem_magazine_7 60 1 2460 14 0.6% kmem_magazine_15 21 1 420 11 2.6% kmem_magazine_31 31 1 372 2 0.5% kmem_magazine_47 20 1 160 7 4.4% kmem_magazine_63 0 0 0 0 0.0% kmem_magazine_95 0 0 0 0 0.0% kmem_magazine_143 0 0 0 0 0.0% kmem_slab_cache 564 1 23124 37 0.2% kmem_bufctl_cache 248 1 20584 80 0.4% kmem_bufctl_audit_cache 18971 1 341478 3 0.0% kmem_va_4096 423 1 13536 14 0.1% kmem_va_8192 25 1 400 9 2.3% kmem_va_12288 22 1 220 8 3.6% kmem_va_16384 396 1 3168 2 0.1% kmem_va_20480 3 1 18 5 27.8% kmem_va_24576 1 1 5 2 40.0% kmem_va_28672 19 1 76 3 3.9% kmem_va_32768 1 1 4 3 75.0% kmem_alloc_8 140 1 17920 10 0.1% kmem_alloc_16 129 1 13158 23 0.2% kmem_alloc_24 214 1 18190 1 0.0% kmem_alloc_32 297 1 21681 29 0.1% : : > ::kmem_slabs -b 5 Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_1 14 1 3514 146 4.2% Allocated Buffers ------------------ Distribution ------------------ Slabs 256 | 0 192-255 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13 128-191 | 0 64-127 |@@@ 1 1-63 | 0 Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_3 11 7 1375 747 54.3% Allocated Buffers ------------------ Distribution ------------------ Slabs 128 | 0 96-127 |@@@@@@@@@@@@@@@@@@ 4 64-95 | 0 32-63 | 0 1-31 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7 : : > ffffc100000212c8::kmem_slabs -v Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_3 11 7 1375 747 54.3% 4 complete (128), 7 partial: 19 24 18 29 19 12 7
[ address ] ::kmem_verify
指定されたアドレスに格納されている kmem_cache 構造体、またはアクティブ kmem_cache 構造体の完全なセットの完全性を検証します。明示的にキャッシュアドレスが指定されている場合、この dcmd はエラーに関するより冗長な情報を表示します。明示的に指定されていない場合は、要約レポートを表示します。::kmem_verify dcmd については、「カーネルメモリーキャッシュ」で詳しく説明します。
> ::kmem_verify Cache Name Addr Cache Integrity kmem_magazine_1 ffffff00c5021008 clean kmem_magazine_3 ffffff00c5021348 clean kmem_magazine_7 ffffff00c5021688 clean kmem_magazine_15 ffffff00c50219c8 clean kmem_magazine_31 ffffff00c5022008 clean kmem_magazine_47 ffffff00c5022348 clean kmem_magazine_63 ffffff00c5022688 clean kmem_magazine_95 ffffff00c50229c8 clean kmem_magazine_143 ffffff00c5023008 clean kmem_slab_cache ffffff00c5023348 clean kmem_bufctl_cache ffffff00c5023688 clean kmem_bufctl_audit_cache ffffff00c50239c8 clean kmem_alloc_8 ffffff00c5027008 clean kmem_alloc_16 ffffff00c5027348 clean kmem_alloc_24 ffffff00c5027688 clean kmem_alloc_32 ffffff00c50279c8 clean : :
[ address ] ::vmem
指定されたアドレスに格納されている vmem 構造体、またはアクティブ vmem 構造体の完全なセットをフォーマットし、表示します。この構造体は、<sys/vmem_impl.h> で定義されます。
> ::vmem ADDR NAME INUSE TOTAL SUCCEED FAIL fffffffffbcd78c0 heap 273100800 1095132774400 2738 0 fffffffffbcd8700 vmem_metadata 4112384 4194304 965 0 fffffffffbcd9540 vmem_seg 3665920 3665920 880 0 fffffffffbcda380 vmem_hash 182784 188416 37 0 fffffffffbcdb1c0 vmem_vmem 266688 294528 76 0 fffffffffbcddc80 static 0 0 0 0 fffffffffbcdeac0 static_alloc 0 0 0 0 fffffffffbcdf900 hat_memload 1966080 1966080 483 0 ffffff00c5001000 kstat 296160 303104 1029 0 ffffff00c5002000 kmem_metadata 4984832 5111808 1163 0 ffffff00c5003000 kmem_msb 4050944 4050944 994 0 ffffff00c5004000 kmem_cache 382336 475136 511 0 ffffff00c5005000 kmem_hash 451072 458752 319 0 ffffff00c5006000 kmem_log 131808 135168 6 0 ffffff00c5007000 kmem_firewall_va 13529088 13529088 814 0 ffffff00c5008000 kmem_firewall 0 0 0 0 ffffff00c500d000 kmem_oversize 13527160 13529088 814 0 ffffff00c501a000 mod_sysfile 7 4096 1 0 ffffff00c501f000 kmem_va 143998976 143998976 1001 0 ffffff00c5020000 kmem_default 143228928 143228928 17536 0 ffffff00c5049000 kmem_io_1G 28672 28672 7 0 ffffff00c504a000 kmem_io_16M 0 0 0 0 ffffff00c504d000 bp_map 0 0 0 0 ffffff00c505c000 umem_np 524288 524288 23 0 ffffff00c505e000 ksyms 2216252 2244608 289 0 ffffff00c505f000 ctf 2045575 2068480 290 0 : :
address ::vmem_seg
指定されたアドレスに格納されている vmem_seg 構造体をフォーマットし、表示します。この構造体は、<sys/vmem_impl.h> で定義されます。
> 0x30000022bd0::vmem_seg -v ADDR TYPE START END SIZE THREAD TIMESTAMP 30000022bd0 ALLC 30002358000 3000235a000 8192
address ::whatis [- abv]
指定されたアドレスに関する情報をレポートします。特に、::whatis は、そのアドレスが kmem によって管理されているバッファーへのポインタまたはスレッドスタックのような別のタイプの特殊メモリー領域へのポインタかどうかを判断し、検出結果をレポートします。
オプション:
-a 照会に最初に一致するものだけでなく、すべての一致をレポートします
-b アドレスが既知の kmem bufctl によって参照されているかどうかも判断します
-v 種々のカーネルデータ構造体を検索する際に進行状況をレポートします
> ffffff00c5004000::whatis ffffff00c5004000 is allocated from the vmem_vmem vmem arena: ADDR TYPE START END SIZE THREAD TIMESTAMP fffffffffbcea7a8 ALLC ffffff00c5004000 ffffff00c5004e40 3648 fffffffffbc36de0 0 vmem_hash_insert+0x89 vmem_seg_alloc+0x12d vmem_xalloc+0x6c2 vmem_alloc+0x172 vmem_create_common+0xcb vmem_create+0x38 kmem_init+0x129 startup_kmem+0xbf startup+0x33 main+0x3a _locore_start+0x90

walker

allocdby
指定された kthread_t 構造体のアドレスを開始点として使用して、当該カーネルスレッドによって行われたメモリー割り当てに対応する bufctl 構造体のセットに対して反復適用します。

bufctl
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する割り当てられた bufctl 構造体のセットに対して反復適用します。

freectl
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する空き bufctl のセットに対して反復適用します。

freedby
指定された kthread_t 構造体のアドレスを開始点として使用して、このカーネルスレッドによって行われたメモリー割り当て解除に対応する bufctl 構造体のセットに対して反復適用します。

freemem
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する空きバッファーのセットに対して反復適用します。

kmem
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する割り当てられたバッファーのセットに対して反復適用します。

kmem_cache
アクティブな kmem_cache_t 構造体のセットに対して反復適用します。この構造体は、<sys/kmem_impl.h> で定義されます。
> ::walk kmem_cache |::print kmem_cache_t cache_name cache_name = [ "kmem_magazine_1" ] cache_name = [ "kmem_magazine_3" ] cache_name = [ "kmem_magazine_7" ] cache_name = [ "kmem_magazine_15" ] cache_name = [ "kmem_magazine_31" ] cache_name = [ "kmem_magazine_47" ] cache_name = [ "kmem_magazine_63" ] cache_name = [ "kmem_magazine_95" ] : :
kmem_cpu_cache
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する CPU ごとの kmem_cpu_cache_t 構造体に対して反復適用します。
> 0000030000160008::walk kmem_cpu_cache |::print kmem_cpu_cache_t cc_flags cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0x1000 cc_flags = 0
kmem_slab
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、関連する kmem_slab_t 構造体のセットに対して反復適用します。この構造体は、<sys/kmem_impl.h> で定義されます。
> 00000300000a0008::walk kmem_slab |::print kmem_slab_t slab_cache slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 : :
kmem_log
kmem アロケータトランザクションログに格納されている bufctl のセットに対して反復適用します。

leak
指定された bufctl 構造体のアドレスを使用して、同様な割り当てスタックトレースを持つ、リークが発生したメモリーバッファーに対応する bufctl 構造体のセットに対して反復適用します。leak walker を使用する前には、::findleaks dcmd を適用してメモリーリークを発見しておく必要があります。

leakbuf
指定された bufctl 構造体のアドレスを使用して、同様な割り当てスタックトレースを持つ、リークが発生したメモリーバッファーに対応するバッファーアドレスのセットに対して反復適用します。leakbuf walker を使用する前には、::findleaks dcmd を適用してメモリーリークを発見しておく必要があります。

vmem
指定された vmem 構造体に対して反復適用します。
> ::walk vmem |::print vmem_t vm_name vm_name = [ "heap" ] vm_name = [ "vmem_metadata" ] vm_name = [ "vmem_seg" ] vm_name = [ "vmem_hash" ] vm_name = [ "vmem_vmem" ] vm_name = [ "static" ] vm_name = [ "static_alloc" ] vm_name = [ "hat_memload" ] vm_name = [ "kstat" ] : :
vmem_seg
指定された kmem_cache_t 構造体のアドレスを使用して、vmem_seg 構造体に対して反復適用します。
> 0000030005ea0da0::walk vmem_seg |::print vmem_seg_t vs_type vs_type = 0x10 vs_type = 0x20 vs_type = 0x10 vs_type = 0x1 vs_type = 0x1 : :
Read more ...

Syntaxhighlighter & CodeMirror

2013/08/04

Syntaxhighlighter

editor.ui.addButton && editor.ui.addButton( 'Syntaxhighlight',
{
        label : editor.lang.syntaxhighlight.title,
        command : 'syntaxhighlightDialog',
        toolbar : 'insert,98'
        icon: this.path + 'icons/syntaxhighlight.png',
} );

CodeMirror

んー。確かにCodeMirrorは表示されるまでの時間が短い。というか最初からハイライトされて表示されとる。
Read more ...