sodebug 命令

用途

设置或取消设置套接字的套接字调试标志(SO_DEBUG 套接字选项)和跟踪级别。

语法

sodebug [ -h ] [ -l [ level ]] [ -p pid | -s sockaddr [ -t type ]]

描述

sodebug 命令设置,取消设置或列示活动套接字上的套接字调试标志和跟踪级别

如果为套接字设置了套接字调试标志 (也称为 SO_DEBUG 套接字选项) ,那么可以使用 trace 命令来跟踪此套接字上的事件。

可以使用 -l 选项在系统上已存在的套接字上设置套接字调试标志。 -l 选项还设置给定套接字的跟踪级别。

如果运行 sodebug 命令时没有任何选项,那么将显示每个活动套接字的套接字调试标志状态和跟踪级别。

tracetrpt 命令根据跟踪级别收集信息。

下表描述了基于跟踪挂钩标识 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
您还可以设置或取消设置套接字调试标志和跟踪级别,如下所述:
  1. 以下命令对随后在系统上创建的所有套接字启用套接字调试标志:
    no -o sodebug=1
  2. 您可以在 inetd.conf 中某个服务的 wait/nowait 字段中指定 |DEBUG[=level],以打开对特定服务的套接字调试。 您可以将跟踪级别设置为 minnormaldetail。 如果没有指定级别,那么缺省级别为 normal
  3. 可以使用 no 命令的 sodebug_env 参数并在进程环境中指定 export SODEBUG=级别 ,为进程创建的所有后续套接字设置套接字调试开启或关闭。 您可以将跟踪级别设置为 minnormaldetail

标志

描述
-h 显示 sodebug 命令的帮助。
-l [级别] 指定跟踪级别。 级别的有效值为 noneminnormaldetail。 如果没有指定级别,那么缺省跟踪级别为 normal
-p pid 指定进程的进程标识。
-s 套接字地址 通过套接字地址、套接字的 inpcb 地址或套接字的 tcpcb 地址指定套接字。
-t 类型 指定由 -s sockaddr 选项指定的地址的类型。 有效值为 socketinpcbtcpcb。 缺省值为 socket

安全性

必须具有引导权限才能运行 sodebug 命令。

示例

  1. 要列出套接字 f100090002d0a800 的调试标志和套接字跟踪级别,请输入:
    sodebug -s f100090002d0a800
    输出与以下示例类似:
    socket address : f100090002d0a800 , sodebug flag : 0 , trace level : none(0)
  2. 要将跟踪级别设置为 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)