ftrace는 Linux 커널에 대한 시스템 호출 인수의 캡처를 허용합니까, 아니면 함수 이름 만 허용합니까?

MaxVT

목표는 모든 프로세스에 의해 특정 시스템 호출 (예 : exec, open 등)에 전달 된 인수를 검사하는 것입니다.

로부터 공식 문서 , 함수 인수를 기록 할 기능은 설명하지 않습니다 (I 그래프를 필요로하지 않는 한, 대부분 "기능"추적 보았다).

나는 ftrace의 프레임 워크 내에서 실제로 이것을 할 수 있다면 무언가를 간과하지 않고 더 이국적인 것을 사용하여 시간을 낭비하지 않도록하고 싶었습니다.

askb

나는 제한된 경험을 가지고 ftrace내가 함수 스택 추적 및 대기 시간 문제를 위해 그것을 사용하고 있지만,. (더 많은 경험을 가진 사람들은 아마도 제안 할 수 있습니다 .) trace-cmdkernelshark.

그러나 커널 공간 내에서 syscall, 함수 매개 변수, 커널 API 및 반환 값 등을 추적하려면를 사용하는 것이 좋습니다 systemtap. 함수 호출 추적, 전달 된 인수 값 등에 유용한 Samples & Doc 의 광범위한 목록이 있습니다. 일부 샘플을 살펴보고 요구 사항에 맞게 조정할 수 있습니다. 참조 general/para-callgraph-verbose.stpprocess/sleeptime.stp

"

general / para- callgraph -verbose.stp- Verbose 인수 키워드를 사용한 Callgraph Tracing : TRACE CALLGRAPH

예쁘게 인쇄 된 함수 매개 변수와 반환 값으로 완성 된 시간 제한 스레드 당 마이크로 초 시간 호출 그래프를 인쇄합니다. 첫 번째 매개 변수는 추적 할 함수 프로브 지점의 이름을 지정합니다. 선택적 두 번째 매개 변수는 트리거 함수에 대한 프로브 지점의 이름을 지정하며, 이는 현재 스레드가 트리거 내에 중첩되어있는 동안 발생하는 함수에 대해서만 추적을 활성화하는 역할을합니다.

stap para-callgraph-verbose.stp 'kernel.function("*@fs/proc*.c")' \
'kernel.function("vfs_read")' -c "cat /proc/sys/vm/* || true"

process / strace.stp- 추적 시스템 호출 키워드 : _BEST PROCESS SYSCALL

스크립트는 개별 프로세스 나 계층 (-c / -x를 통해) 또는 전체 시스템 (-c / -x없이)에 적용될 때 strace를 느슨하게 에뮬레이트합니다. -G로 몇 가지 출력 구성 매개 변수를 설정할 수 있습니다.

stap strace.stp -c "sleep 1"

"

올바르게 작동 하려면 올바른 버전의 debug kernelkernel-develrpms / deb 를 설치해야 stap합니다. 이를 위해 사용 stap-prep하고있는 플레이버에 따라 표시된 종속성을 사용 하고 설치하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사