不夠精簡是不是?
那是因為我的水平還不夠6,其實stap是可以直接呼叫system來執行外部命令的,如此就不需要再進入guru模式來stap自己了。
指令碼如下:
#!
/usr/local/bin/stap
// selftap
probe process
("/usr/local/bin/stap").
function
("make_any_make_cmd"
)
夠簡單吧。來來來,看效果:
[root@localhost test]
# cat aa.stp
#!/usr/local/bin/stap -g
%function func(who:long)
%probe begin
[root@localhost test]
# /usr/local/bin/stap -g ./aa.stp 191
/tmp/stapktguzf/stap_7a62a2c6930488205b2f13dbba9d80c5_1310_src.c:29:20: 致命錯誤:common.h:沒有那個檔案或目錄
#include "common.h"
^編譯中斷。
make[1]: *** [/tmp/stapktguzf/stap_7a62a2c6930488205b2f13dbba9d80c5_1310_src.o] 錯誤 1
make: *** [_module_/tmp/stapktguzf] 錯誤 2
warning: kbuild exited with status: 2
pass 4: compilation failed. [man error::pass4]
[root@localhost test]
# ./selftap -c '/usr/local/bin/stap -g ./aa.stp 191'
100 191
[root@localhost test]
#
附說一句,其實,我在指令碼裡的cmd有點硬編碼了,正確的做法應該是:
file =
sprintf
("%s/makefile"
,user_string
($dir->_m_local_buf));
cmd =
sprintf
("./mycmd %s"
, file)
;
我只需要將makefile的全路徑傳進去,我就可以往makefile裡寫更多的東西了,比如再加乙個obj-m += ***.o
嗯,這樣更好。
浙江溫州皮鞋溼,下雨進水不會胖。
UITableView自定義區頭
自定義區頭,高度自定義又要隨動,就要實現自定義區頭 的同時,實現自定義區尾,只要設定為零就控制區頭的高度 inte ce anniversaydayviewcontroller property nonatomic,strong uitableview tableview property nona...
自定義SOAP訊息頭
對於webservice呼叫,為了驗證呼叫者的身份,可以自定義乙個soapheader,讓呼叫者將身份資訊放在裡面,然後在服務端檢查,具體方法如下 1 先定義乙個soapheader,用它來傳遞身份資訊 using system using system.web.services.protocols...
FastCGI處理自定義HTTP頭
fcgx中,自定義頭可以獲取環境變數獲得。但是名字前面要加入http 字母全部大寫,例如 自定義頭username,在fastcgi的fcgx中,變為 http username。可以用fcgx getparam獲取單個環境變數。頭資訊在fcgx request envp中,可以全部列印出來 cha...