sodebug 命令
用途
设置或取消设置套接字的套接字调试标志(SO_DEBUG 套接字选项)和跟踪级别。
语法
sodebug [ -h ] [ -l [ level ]] [ -p pid | -s sockaddr [ -t type ]]
描述
sodebug 命令设置,取消设置或列示活动套接字上的套接字调试标志和跟踪级别
如果为套接字设置了套接字调试标志 (也称为 SO_DEBUG 套接字选项) ,那么可以使用 trace 命令来跟踪此套接字上的事件。
可以使用 -l 选项在系统上已存在的套接字上设置套接字调试标志。 -l 选项还设置给定套接字的跟踪级别。
如果运行 sodebug 命令时没有任何选项,那么将显示每个活动套接字的套接字调试标志状态和跟踪级别。
trace 和 trpt 命令根据跟踪级别收集信息。
下表描述了基于跟踪挂钩标识 25 A(TCPDBG)的跟踪级别所收集的信息:
| min | normal | detail | |
|---|---|---|---|
| tcp_debug 数据(td_time、td_act、td_ostate、 td_tcb、family 和 td_req) | X | X | |
| tcpip 头 | X | X | |
| tcpcb 的地址 | X | X | |
| 所有 tcpcb 字段 | X | ||
| 套接字的地址 | X | X | |
| 所有套接字字段 | X |
您还可以设置或取消设置套接字调试标志和跟踪级别,如下所述:
- 以下命令对随后在系统上创建的所有套接字启用套接字调试标志:
no -o sodebug=1 - 您可以在 inetd.conf 中某个服务的 wait/nowait 字段中指定 |DEBUG[=level],以打开对特定服务的套接字调试。 您可以将跟踪级别设置为 min、normal 或 detail。 如果没有指定级别,那么缺省级别为 normal。
- 可以使用 no 命令的 sodebug_env 参数并在进程环境中指定 export SODEBUG=级别 ,为进程创建的所有后续套接字设置套接字调试开启或关闭。 您可以将跟踪级别设置为 min、normal 或 detail。
标志
| 项 | 描述 |
|---|---|
| -h | 显示 sodebug 命令的帮助。 |
| -l [级别] | 指定跟踪级别。 级别的有效值为 none、min、normal 和 detail。 如果没有指定级别,那么缺省跟踪级别为 normal。 |
| -p pid | 指定进程的进程标识。 |
| -s 套接字地址 | 通过套接字地址、套接字的 inpcb 地址或套接字的 tcpcb 地址指定套接字。 |
| -t 类型 | 指定由 -s sockaddr 选项指定的地址的类型。 有效值为 socket、inpcb 和 tcpcb。 缺省值为 socket。 |
安全性
必须具有引导权限才能运行 sodebug 命令。
示例
- 要列出套接字 f100090002d0a800 的调试标志和套接字跟踪级别,请输入:
sodebug -s f100090002d0a800输出与以下示例类似:socket address : f100090002d0a800 , sodebug flag : 0 , trace level : none(0) - 要将跟踪级别设置为 normal 并将调试标志设置为 1,请输入:
sodebug -s f100090002d0a800 -l normal输出与以下示例类似:Setting new values for trace level and debug flag socket address : f100090002d0a800 , sodebug flag : 1 , trace level : normal(3)