Linux Kernel을 수정하다 보면, Kernel을 Trace 할 필요가 있는데, 이 때 많이 사용되는 Tool이 LTTng 이다.
이를 Ecplise에 연결하여 사용해보도록 하자.
1.1 기본 개발 환경설정 변경
Kernel Config 설정변경
https://ahyuo79.blogspot.com/2020/04/yocto-profiling-and-tracing.html
LTTng 설치
https://lttng.org/download/
LTTng 관련문서
1.1 기본 개발 환경설정 변경
Kernel Config 설정변경
https://ahyuo79.blogspot.com/2020/04/yocto-profiling-and-tracing.html
LTTng 설치
https://lttng.org/download/
LTTng 관련문서
https://lttng.org/docs
1.2 Ecplise or Trace Compass 설정
Project 창 Trace Project 생성 (File->New->Trace Project)
이부분 Option으로 추후 LTTng의 파일을 Local에 저장되었을 때 분석용이
Window->Show View->Other 선택
LTTng->Control 선택
Tracing 창
1.3 LTTng의 Control 기본분석
Target에 SSH Server 와 LTTng Kernel 지원 및 명령어가 지원이 된다면 아래와 같이 Remote로 Control 가능하다.
LTTng-Control -> New Connection ( Target의 SSH연결)
Sessions-> Creat Session
Provider->Kernel-> 함수 Event 선택
커널 함수 중 sched_switch 선택
1.4 User Space 분석 (Option)
User Mode에서도 동작을 위해 아래와 같이 설정했지만 Provider가 제공하지 않기 때문에 불가능하다.
mySession->Enable Channel 선택 (별도의 Channel 생성 )
Event 모두 선택 (오직 테스트 이며, 이 부분은 미동작)
LTTng의 User Space의 Provider 확장방법
https://lttng.org/docs/#doc-c-application
1.5 LTTng Control 창 Start
mySession->Start 진행 (lttng start와 동일)
mySession->Stop 진행 (lttng stop와 동일)
Remote에는 Session 의 정보가 저장됨 (lttng-traces->mySession-xxxxxxxx)
2. Ecplise의 LTTng의 분석
이미 생성된 Session에 정보를 Trace Project로 Remote로 열어 분석가능
혹은
이 정보를 Local로 가져와서 분석도 가능
mySession->import 진행 (Target의 Session 정보 열기)
Project Exploere-> Remote 의 Trace Project 가 자동생성
Provider인 Kernel 클릭 한 후 각각의 보고 싶은 기능들을 클릭
각각 필요창은 LTTng 창과 Trace 창으로 분석 진행창을 열어도 가능
각각의 지원되는 기능은 좌측의 Kernel 밑의 기능을 더블클릭하면됨
https://archive.eclipse.org/tracecompass/doc/stable/org.eclipse.tracecompass.doc.user/LTTng-Tracer-Control.html
1.2 Ecplise or Trace Compass 설정
Project 창 Trace Project 생성 (File->New->Trace Project)
이부분 Option으로 추후 LTTng의 파일을 Local에 저장되었을 때 분석용이
Window->Show View->Other 선택
LTTng->Control 선택
Tracing 창
1.3 LTTng의 Control 기본분석
Target에 SSH Server 와 LTTng Kernel 지원 및 명령어가 지원이 된다면 아래와 같이 Remote로 Control 가능하다.
LTTng-Control -> New Connection ( Target의 SSH연결)
Sessions-> Creat Session
- Provider가 현재 Kernel 밖에 지원이 안됨
- User Space는 미지원
Provider->Kernel-> 함수 Event 선택
커널 함수 중 sched_switch 선택
1.4 User Space 분석 (Option)
User Mode에서도 동작을 위해 아래와 같이 설정했지만 Provider가 제공하지 않기 때문에 불가능하다.
mySession->Enable Channel 선택 (별도의 Channel 생성 )
Event 모두 선택 (오직 테스트 이며, 이 부분은 미동작)
LTTng의 User Space의 Provider 확장방법
https://lttng.org/docs/#doc-c-application
1.5 LTTng Control 창 Start
mySession->Start 진행 (lttng start와 동일)
mySession->Stop 진행 (lttng stop와 동일)
Remote에는 Session 의 정보가 저장됨 (lttng-traces->mySession-xxxxxxxx)
2. Ecplise의 LTTng의 분석
이미 생성된 Session에 정보를 Trace Project로 Remote로 열어 분석가능
혹은
이 정보를 Local로 가져와서 분석도 가능
mySession->import 진행 (Target의 Session 정보 열기)
Project Exploere-> Remote 의 Trace Project 가 자동생성
Provider인 Kernel 클릭 한 후 각각의 보고 싶은 기능들을 클릭
각각 필요창은 LTTng 창과 Trace 창으로 분석 진행창을 열어도 가능
각각의 지원되는 기능은 좌측의 Kernel 밑의 기능을 더블클릭하면됨
https://archive.eclipse.org/tracecompass/doc/stable/org.eclipse.tracecompass.doc.user/LTTng-Tracer-Control.html