위키득계정 ↗
기술

strace

strace기술
주요 환경
Linux
추적 대상
시스템 호출과 신호 및 상태 변화
기반 기능
ptrace
주요 용도
진단과 디버깅
strace는 Linux 프로세스와 커널 사이의 시스템 호출 및 신호 전달을 추적하는 진단 도구다. 프로그램을 다시 컴파일하지 않고 실행 동작을 살피며 호출 종류와 경로에 따라 결과를 좁혀 분석할 수 있다.

프로세스와 커널의 상호 작용

프로그램이 커널에 요청한 시스템 호출과 전달받는 신호 및 프로세스 상태 변화를 관측한다. 소스가 없는 프로그램도 다시 컴파일하지 않고 살펴볼 수 있다. 이미 실행 중인 프로세스에 연결해 동작을 추적하는 방식도 지원한다.

필요한 호출과 자료의 선택

파일과 네트워크 및 메모리 같은 호출 종류로 결과를 제한하거나 특정 경로에 접근하는 호출만 선택할 수 있다. 파일 서술자와 연결된 경로 등 부가 정보를 표시하고 읽거나 쓴 자료의 내용을 출력하는 기능도 제공한다.

통계와 오류 상황의 시험

호출별 실행 시간과 횟수 및 오류 수를 요약할 수 있다. 시스템 호출에 오류를 주입해 프로그램의 대응 동작을 살피는 기능도 있다. 실행 흐름을 관찰하는 작업과 의도적으로 실패 조건을 만드는 시험 기능을 함께 제공하는 도구다.

관련 문서

bpftrace / BCC 추적 도구 / CRIU / 프로세스 / 운영체제 / 리눅스