2011-04-09 1 views
1

나는 이러한 시도했지만, 그들 모두는 "빈"출력 파일 생성 : 당신이 함수 이름의 권리를 얻을 필요가ftrace를 사용하여 시스템 호출에서 호출되는 커널 내 호출 그래프를 얻으려면 어떻게해야합니까?

trace-cmd record -p function_graph -g munmap -F ls 
trace-cmd record -p function_graph -g sys_enter_munmap -F ls 
trace-cmd record -p function_graph -g sys_enter -F ls 
+0

ftrace가 활성화되어 있습니까? – gby

+0

그래, 그냥 모든 이벤트를 덤프하도록 지시하면 작동합니다. –

+0

음, 이것들을 시도해 보았습니다. (Ubuntu 2.6.35-28, trace-cmd version 1.0.3) 그래서 문제가 특정 커널이나 ftrace-cmd 버전 및/또는 config에 있다고 추측 할 수 있습니다. – gby

답변

2

제일 - 예를 들어, open syscalls을 추적하는 데 사용할 함수 이름은 sys_open입니다.

이렇게하려면 "적절한"방법으로 커널에 function_graph을 지원해야합니다. x86 아키텍처에서는 this depends on CC_OPTIMIZE_FOR_SIZE being disabled이지만 x86_64에서는 그렇지 않습니다.

내 경우에는 내가 그냥

trace-cmd record -p function --func-stack 

을했고, 그들은 여러 -l 옵션을 추가하여 호출 할 수처럼 보였다 다양한 기능을 포함, CC_OPTIMIZE_FOR_SIZE을 해제하는 맞춤 커널을 컴파일 귀찮게하지 않았다. 이것은 내가 알고 싶었던 것을 이해하기에 충분했다.

관련 문제