쌓고 쌓다

[Linux] uftrace 본문

프로그래밍/리눅스

[Linux] uftrace

승민아 2022. 5. 23. 22:25

설치

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