Solaris 模块调试器指南

联网

以下提供的 dcmd 和 walker 有助于调试核心内核联网栈协议。

dcmd

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

在指定内核 MI_O 的地址的情况下,过滤并显示 MI_O 或其有效负荷。如果指定了 -p 选项,则显示 MI_O 对应的有效负荷的地址,否则显示 MI_O 本身。通过指定过滤器 -d-m,dcmd 可以过滤设备或模块 MI_O 对象。

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

显示网络统计信息和活动连接。 如果存在 -a 选项,则显示所有套接字的状态。 如果存在 -v 选项,则显示更详细的输出。 如果存在 -f 选项,则仅显示与指定的地址族关联的连接。如果存在 -P 选项,则仅显示与指定协议关联的连接。

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

过滤并显示 sonode 对象。如果未指定任何地址,则显示 AF_UNIX 套接字的列表,否则仅显示指定的 sonode。 如果存在 -f 选项,则仅输出指定族的套接字。如果存在 -t 选项,则仅输出指定类型的 sonode。如果存在 -p 选项,则仅显示指定协议的套接字。

[ address ] ::tcpb [-av] [-P v4 | v6]

过滤并显示 tcpb 对象。如果未指定任何地址,则遍历所有连接,否则仅过滤/显示指定的 tcpb。如果仅为活动连接指定 -a 过滤器,则可以使用 -P 过滤 TCP IPv4 或 IPv6 连接。tcpb dcmd 可以对 TCP 连接进行智能过滤,如果 IPv6 TCP 连接处于仍然允许 IPv4 连接的状态,则 -P 过滤器会将该连接同时视为 IPv4 和 IPv6,这与 ::netstat 所使用的方式非常相似。如果未将 dcmd 用作过滤器并且指定了 -v 选项,则 dcmd 的输出将为详细输出。

Walker

ar

此 walker 用于在指定 ar 的地址的情况下,遍历从指定 ar 到最后一个 ar 的所有 ar 对象。如果未指定任何地址,则遍历所有 ar 对象。

icmp

此 walker 用于在指定 icmp 的地址的情况下,遍历从指定 icmp 到最后一个 icmp 的所有 icmp 对象。如果未指定任何地址,则遍历所有 icmp 对象。

ill

此 walker 用于在指定接口链路层 (interface link layer, ill) 结构的地址的情况下,遍历从指定 ill 到最后一个 ill 的所有 ill 对象。如果未指定任何地址,则遍历所有 ill 对象。

ipc

此 walker 用于在指定 ipc 的地址的情况下,遍历从指定 ipc 到最后一个 ipc 的所有 ipc 对象。如果未指定任何地址,则遍历所有 ipc 对象。

mi

在指定 MI_O 的地址情况下,遍历此 MI 中的所有 MI_O。

sonode

在指定 AF_UNIX sonode 的地址的情况下,从指定的 sonode 开始遍历 AF_UNIX sonode 的关联列表。如果未指定任何地址,则此 walker 将遍历所有 AF_UNIX 套接字的列表。

tcpb

此 walker 用于在指定 tcpb 的地址的情况下,遍历从指定 tcpb 到最后一个 TCP 连接的所有 TCP 连接。如果未指定任何地址,则遍历所有 tcpb 对象。

udp

此 walker 用于在指定 udp 的地址的情况下,遍历从指定 udp 到最后一个 udp 的所有 udp 对象。如果未指定任何地址,则遍历所有 udp 对象。