Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

37120
1703
402252


[리눅스커널] 커널 디버깅과 코드 학습: ftrace란 3. 커널 디버깅과 코드 학습

printk와 dump_stack을 활용해 커널 디버깅을 하던 리눅스 커널 개발자들은 여러 불편함을 느끼기 시작했습니다. 즉, 다음과 같은 요건을 충족하는 커널 디버깅 기능이 있으면 좋겠다고 생각하게 됩니다.

함수 호출 흐름을 소스코드를 수정하지 않고도 보고 싶다.
커널 세부 실행 정보를 출력해 줬으면 좋겠다.
1초에 수십 번 호출해도 성능에 부담을 주지 않았으면 좋겠다.
커널 로그도 함께 보고 싶다.

이런 요구사항을 모두 충족하는 커널 디버깅 기능이 바로 ftrace입니다.

ftrace는 리눅스 커널에서 제공하는 가장 강력한 트레이서입니다. ftrace는 커널 개발자에게 축복과도 같은데, 커널 세부 동작을 알기 쉽게 출력하기 때문입니다.

---
트레이서는 strace나 ltrace처럼 리눅스에서 함수 호출 정보를 출력하는 디버깅 기능을 의미합니다.
---

ftrace의 특징은 다음과 같습니다.

1. 인터럽트, 스케줄링, 커널 타이머 등의 커널 동작을 상세히 추적합니다.
2. 함수 필터를 지정하면 어떤 코드를 호출한 함수와 전체 콜스택까지 출력합니다. 물론 코드를 수정할 필요가 없습니다.
3. 함수를 어느 프로세스가 실행하는지 알 수 있습니다.
4. 함수 실행 시각을 알 수 있습니다.
5. ftrace 로그를 활성화해도 시스템 동작에 부하를 주지 않습니다.

이어서 ftrace를 설정하는 방법을 알아보겠습니다.

* 유튜브 강의 동영상도 있으니 같이 들으시면 더 많은 걸 배울 수 있습니다. 




"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Thanks,
Austin Kim(austindh.kim@gmail.com)

커널 디버깅과 코드 학습

디버깅이란
ftrace
   * ftrace란     


# Reference: For more information on 'Linux Kernel';

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 2


 



핑백

덧글

댓글 입력 영역