당신은에 systemtap를 사용할 수있는 네트워크를 좋아하는 호출 될 때마다 증가 숫자를 출력하도록 당신은 그것을 다시 컴파일 할 수는 동적 라이브러리 (DLL) 경우 함수 호출 수를 얻는다. 이 도구는 재 컴파일하지 않고도 모든 응용 프로그램을 런타임에 측량 할 수있게 해주는 강력한 도구입니다. 필요한 기호 만 디버그 할 수 있습니다.
# call-counts.stp
global calls, times
probe process(@1).function(@2) {
times[probefunc()] = gettimeofday_ns()
}
probe process(@1).function(@2).return {
now = gettimeofday_ns()
delta = now - times[probefunc()]
calls[probefunc()] <<< delta
}
다음
/lib64/libc-2.12에 getenv()
에 전화를 계산하는 데 사용하는 방법입니다 : 여기
은 나노초 단위의 실행 시간과 함께 함수를 호출의 수를 계산하는 스크립트입니다 .2.so
ls -1
를 실행하는 경우 :
$ sudo stap -c "ls -1" ~/tmp/count-calls.stp /lib64/libc-2.12.2.so "str*"
binned_market_data
count-calls.stp
count-calls.stp~
Makefile
md
nohup.out
calls["__strdup"] @count=14 @min=5035 @max=10664 @sum=80479 @avg=5748
calls["strcoll"] @count=11 @min=11626 @max=20018 @sum=140851 @avg=12804
calls["__strcoll_l"] @count=11 @min=4992 @max=9393 @sum=63179 @avg=5743
calls["strstr_ifunc"] @count=2 @min=4902 @max=7429 @sum=12331 @avg=6165
,369 :
$ sudo stap -c "ls -1" ~/tmp/count-calls.stp /lib64/libc-2.12.2.so getenv
binned_market_data
count-calls.stp
count-calls.stp~
Makefile
md
nohup.out
calls["getenv"] @count=23 @min=4841 @max=19257 @sum=142529 @avg=6196
또 다른 예는 것은 호출에 "STR의 *"기능을 볼 수