sodebug 명령
용도
소켓에서 소켓 디버그 플래그(SO_DEBUG 소켓 옵션) 및 추적 레벨을 설정 및 설정 해제합니다.
구문
sodebug [ -h ] [ -l [ level ] ] [ -p pid | -s sockaddr [ -t type ] ]
설명
sodebug 명령은 활성 소켓에서 소켓 디버그 플래그 및 추적 레벨을 설정, 설정 해제 또는 나열합니다.
소켓 디버그 플래그(SO_DEBUG 소켓 옵션이라고도 함)가 소켓을 위해 설정되면, 이 소켓의 이벤트가 trace 명령을 사용하여 추적될 수 있습니다.
-l 옵션을 사용하여 시스템에 이미 존재하는 소켓 디버그 플래그를 소켓에 설정할 수 있습니다. -l 옵션은 제공된 소켓에 대한 추적 레벨도 설정합니다.
sodebug 명령이 옵션 없이 실행되면, 소켓 디버그 플래그 상태 및 각 활성 소켓에 대한 추적 레벨이 표시됩니다.
trace 및 trpt 명령은 추적 레벨을 기반으로 정보를 수집합니다.
다음 테이블은
추적 후크 ID 25A(TCPDBG)에 대한 추적 레벨을 기반으로 수집된 정보에 대해 설명합니다.
최소 | 보통 | 상세 | |
---|---|---|---|
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에서 서비스의 대기/비대기 필드에서 |DEBUG[=level]을 지정할 수 있습니다. 최소, 정상 또는 상세에 추적 레벨을 설정할 수 있습니다. 레벨이 지정되지 않은 경우 디폴트 레벨은 정상입니다.
- no 명령의 sodebug_env 매개변수를 사용하고 프로세스 환경에서 export SODEBUG=level을 지정하여 프로세스에서 작성한 모든 후속적 소켓에서 소켓 디버깅을 설정 또는 설정 해제할 수 있습니다. 최소, 정상 또는 상세에 추적 레벨을 설정할 수 있습니다.
플래그
항목 | 설명 |
---|---|
-h | sodebug 명령에 대한 도움말이 표시됩니다. |
-l [level] | 추적 레벨을 지정합니다. 레벨에 대한 유효값은 없음, 최소, 정상 및 세부사항입니다. 레벨이 지정되지 않은 경우 디폴트 추적 레벨은 정상입니다. |
-p pid | 프로세스의 프로세스 ID를 지정합니다. |
-s sockaddr | 소켓 주소, 소켓의 inpcb 주소 또는 소켓의 tcpcb 주소에 의한 소켓을 지정합니다. |
-t 유형 | -s sockaddr 옵션으로 지정된 주소의 유형을 지정합니다. 유효값은 소켓, inpcb 및 tcpcb입니다. 디폴트 값은 소켓입니다. |
보안
sodebug 명령을 실행하기 위한 루트 권한이 있어야 합니다.
예제
- 소켓 f100090002d0a800의 디버그 플래그 및 소켓 추적 레벨을 나열하려면 다음을 입력하십시오.
sodebug -s f100090002d0a800
출력은 다음 예제와 유사합니다.socket address : f100090002d0a800 , sodebug flag : 0 , trace level : none(0)
- 추적 레벨을 정상으로 설정하고 디버그 플래그를 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)