쌓고 쌓다
[Linux] uftrace 본문
설치
git clone https://github.com/namhyung/uftrace.git
github의 저장소를 복사해 가져옵니다.
sudo misc/install-deps.sh
uftrace 폴더로 이동하여 위의 쉘을 실행시킵니다.
./configure
make
sudo make install
차례대로 입력하여 또 설치
uftrace의 명령어
- record : runs a program and saves the trace data
- replay : shows program execution in the trace data
- report : shows performance statistics in the trace data
- live : does record and replay in a row (default)
- info : shows system and program info in the trace data
- dump : shows low-level trace data
- recv : saves the trace data from network
- graph : shows function call graph in the trace data
- script : runs a script for recorded trace data
- tui : show text user interface for graph and report
uftrace를 위해 컴파일을 해야 하는데 -pg 옵션을 사용한다. (s-abc.c 를 컴파일)
gcc -pg -o s-abc s-abc.c
이제 아래 명령어를 입력하면 정보가 출력 가능함
uftrace s-abc
위의 명령어로 출력하는것보다 더 쉽고 자세한 분석을 원한다면 먼저 레코딩을 해야 한다.
uftrace record s-abc
-> 이러면 uftrace.data 디렉토리가 생기는데 이게 trace data files 임.
replay 명령어는 실행 정보를 보여주는데 부가 옵션들을 살펴보자.
- -D : 광범위한 출력이 나오면 보기 힘드니 주어진 깊이로 제한한다. ex) uftrace replay -D 5
- -t : 주어진 시간 내에 끝난 함수는 출력 안 함. ex) uftrace replay -t 10us -> 10us 이내는 출력 X
- -F : 주어진 함수만 보이게 출력. ex) uftrace replay -F factorial -> factorial 함수만 보고 싶음.
- -N : 주어진 함수는 제외하고 출력. ex) uftrace replay -N factorial -> factorial 함수는 제외 출력
- -k : kernel function도 추적이 가능함.(root 꼭 쓰기) ex) sudo uftrace -k s-abc
- -A and -R : 함수에 들어가는 매개변수 값과 반환 값을 알고 싶을 때
- -> uftrace -A fib@arg1 -R fib@retval tests/t-fibonacci 5
uftrace -A fib@arg1 -R fib@retval s-fibonacci 5
ls uftrace.data* : trace data 파일들
report
uftrace report
graph
uftrace graph
'프로그래밍 > 리눅스' 카테고리의 다른 글
uftrace로 .py(파이썬 소스파일) 실행 (0) | 2022.06.18 |
---|---|
[Linux] git (0) | 2022.05.17 |
[Linux] shell script 2 (0) | 2022.05.09 |
[Linux] shell script 1 (0) | 2022.05.09 |
[Linux] diff, vimdiff, wc (0) | 2022.04.06 |
Comments