ftrace를 사용하면서 궁금한 점.
현재까지 ftrace라는건 어떤 함수를 추적하고 그 로그를 볼 수 있구나라는것을 알았고, ftrace로 혼자 분석하고 싶다는 생각이 들었습니다.
강의에서 프로세스가 종료될 때 do_exit()같은 함수가 호출된다! 라는것을 전제하고 이것을 ftrace에 등록해서 로그분석을 하고있는데,
do_exit()이 호출된다는건 어떻게 알 수 있을까요??
Answer 2
0
안녕하세요.
커널 소스에는 결국 모든게 다 공개되어있는데
위 함수가 호출되는 것도 결국 코드 쫓아가면 호출되는 지점을 발견할 수 있어요.
do_exit는 프로세스가 죽을 때 반드시 호출되는 함수인데 이 또한 grep긁어서 쫒아가다보면
정확한 소스 지점이 나와요.
do_exit자체를 ftrace에 등록하서 콜스택을 봐보는것도 방법이고요. 다만 엄청나게 콜이 많이 될테니 강의 내용에 있는 끄고 키는 방법으로 해보세요.
0
안녕하세요, 인프런 AI 인턴입니다. 진민우님.
ftrace를 활용해 함수 추적을 하면서 궁금해하시는 부분을 이해할 수 있을 것 같습니다. 리눅스 커널에서 특정 함수가 호출되는지를 알 수 있는 방법과 관련된 설명을 드리겠습니다.
리눅스 커널에서 함수 호출 확인하기
커널 소스 코드 확인:
- 대부분의 리눅스 커널 함수는 커널 소스 코드에 명시되어 있습니다.
do_exit()함수는 프로세스가 종료될 때 호출되는 함수로,kernel/exit.c파일 등에서 그 정의와 사용을 확인할 수 있습니다.
- 커널 소스를 직접 분석하는 것이 처음에는 벅찰 수 있지만, 특정 파일이나 디렉터리를 검색해서 찾을 수 있습니다.
- 대부분의 리눅스 커널 함수는 커널 소스 코드에 명시되어 있습니다.
ftrace 설정 활용:
ftrace는 특정 함수가 실행될 때마다 그 위치를 로그로 남길 수 있습니다. 이를 통해do_exit()와 같은 함수가 언제 호출되는지를 추적할 수 있습니다.
ftrace설정에서set_ftrace_filter파일을 사용하여 추적할 함수를 지정할 수 있습니다. 예를 들어,echo "do_exit" > /sys/kernel/debug/tracing/set_ftrace_filter명령으로do_exit()함수를 추적할 수 있습니다.
관련 유사 질문 및 자료 참조:
- set_ftrace 질문 게시물을 참조해 보시면, 함수 추적에 관한 유사한 사례를 확인하고 도움이 될 만한 정보를 얻을 수 있습니다.
- set_ftrace 질문 게시물을 참조해 보시면, 함수 추적에 관한 유사한 사례를 확인하고 도움이 될 만한 정보를 얻을 수 있습니다.
이런 방식으로 do_exit()를 비롯한 많은 함수의 호출을 추적하고 분석할 수 있으며, 커널의 동작을 더 깊이 이해할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요. 계속 프로젝트를 해야지 하다가 결제하고 환경 설정 중입니다.
0
15
1
Export template 안됨
1
28
2
scanf("%d\n") 의미
0
20
1
REST API (Self-descriptive messages)
0
22
1
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
37
2
13강 프로젝트생성해보기 관련 질문
0
26
3
56강 bcm2835-mailbox.c 파일 질문
0
58
2
'drivers/soc/bcm/bcm2835-power.o 에러 입니다.
0
89
3
라즈베리파이5 도 상관없을까요
0
104
1
드라이버 작성 포맷
0
75
2
install.txt를 실행하는 이유에 대해서.
0
93
2
네트워크 연결이 안됩니다
0
116
2
고아(?) 프로세스의 부모 선정이 어떻게 되는지 궁금합니다
0
121
3
arm 아키텍처는 4를 빼는 이유가 무엇일까요
0
172
3
xshell 와이파이 연결이 안됌.
0
206
2
시즌 2, 3 는 언제 수강할 수 있을까요?
0
257
2
current 매크로를 이용할때 sp_el0 를 활용하는 이유
0
196
2
context switching 을 할때 수행되는 asm 코드 관련 문의 드립니다.
0
170
3
라즈베리파이 메모리 사이즈 큰거 사도 될까요?
0
330
1
set_ftrace 질문
2
243
2
강의자료
0
175
2
재 빌드시 변경파일만 반영하지 않고 처음부터 빌드 됩니다.
0
319
1
kernel build 오류
0
300
3
라즈베리파이 용량부족
0
589
3

