리눅스 strace

IT 위키
시스템 콜을 추적하여 프로그램의 실행 과정을 출력하는 명령어.
  • 해당 명령어는 같지만 옵션이 다름
  • 경로 : /usr/bin/strace

사용법[편집 | 원본 편집]

문법[편집 | 원본 편집]

strace [옵션] 명령어 [매개변수]

옵션[편집 | 원본 편집]

  • -c : 각 시스템 콜에 대한 시간, 콜, 에러 등을 카운트한다.
  • -d : 디버깅 정보를 출력한다.
  • -f : fork 시스템 콜의 결과로 생성된 자식 프로세스를 추적한다.
  • -ff : “-o filename” 옵션과 함께 실행되는 프로그램의 프로세스 ID를 filename.pid로 저장한다.
  • -h : 사용법을 출력한다.
  • -i : 시스템 콜 호출 시간에 명령 포인터를 같이 출력한다.
  • -q : attaching, detaching 등의 메시지를 출력하지 않는다.
  • -r : 상대적인 타임 스탬프를 출력한다.
  • -T : 각 시스템 콜에서 소모한 시간을 출력한다.
  • -V : 버전 정보를 출력한다.
  • -v : 자세한 정보를 출력한다.
  • -x : 아스키 문자가 아닌 16진수를 출력한다.
  • -xx : 모든 16진수를 출력한다.
  • -a column : 열의 너비를 지정한다(기본값은 40).
  • -e expr : 정규표현식을 지정한다.
  • -o filename : 저장할 파일(filename)을 지정한다.
  • -O overhead : 시스템 콜 추적을 위한 오버헤더를 마이크로 초 단위로 지정한다.
  • -p pid : 지정한 PID로 프로세스를 추적한다.
  • -D : 추적하는 프로세스를 손자 프로세스에 붙여 실행한다.
  • -s strsize : 최대 문자 크기(strsize)를 제한한다.
  • -S sortby : -c 옵션과 함께 시스템 콜을 time, calls, name 기준으로 정렬한다(기본값은 time).
  • -u username : 명령어를 지정한 사용자(username) 권한으로 실행한다.
  • -E var=val : 명령어에 대한 환경 변수(var)를 지정한다.
  • -E var : 명령어에서 지정한 환경 변수(var)를 삭제한다.

예제[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]