strace
특정 프로그램의 시스템 콜과 시그널을 추적하는 프로그램 입니다.
strace 사용방법
추적을 위해 인자로 커맨드 혹은 프로세스 아이디를 주어서 조회할 수 있습니다.
|
사용 방법 |
커맨드 |
$ strace COMMAND |
프로세스 아이디 |
$ strace -p PID |
strace 예제
아래 상황은 glsnr 프로그램에 시그널을 보냈을 때, strace 출력물에 나오는 내용입니다.
상황 |
표준출력 |
1. 특정 프로그램의 PID 조회 |
$ ps -C glsnr PID TTY TIME CMD 5289 ? 00:00:00 glsnr |
2. strace -p PID 로 추적 시작 |
$ nohup strace -p 5289 & |
3. 프로그램에 시그널 전송 |
$ kill -12 5289 |
4. strace 에 나오는 내용 조회 |
... epoll_wait(3, 158f3c0, 2, 1000) = -1 EINTR (Interrupted system call) --- SIGUSR2 {si_signo=SIGUSR2, si_code=SI_USER, si_pid=5423, si_uid=1000} --- |
strace 옵션
옵션 |
설명 |
-o FILENAME |
나오는 결과를 파일로 기록 |
-c |
각각의 시스템 콜에 대한 개수를 출력 |
-f |
추적 중인 프로세스가 fork 한 자식 프로세스도 추적 |
-t |
줄마다, 기록된 시간을 출력 |
-p PID |
명령어가 아니라 PID 로 추적 현재 실행중인 프로그램을 추적할 때 유용 |
'Linux > 명령어' 카테고리의 다른 글
[LINUX] expr 연산 계산 하기 (0) | 2018.02.13 |
---|---|
[LINUX] wildcard 문자열 잘라서 반환하기 (0) | 2018.02.12 |
[LINUX] sed 문자열 치환하기 (0) | 2018.02.12 |
[LINUX] crontab 스케줄러 ( 반복, 예약작업 ) 등록하기 (0) | 2018.02.11 |
[LINUX] vmstat 시스템 모니터링하기 (0) | 2017.12.03 |