7/20/2020

Ecplise 혹은 Trace Compass 의 LTTng 이용

1.  Eclipse or Trace Compass 의 LTTng Debug 방법  

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 관련문서
  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



  1. Provider가 현재 Kernel 밖에 지원이 안됨 
  2. 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