1.构建工具模块
构建指定内核版本的模块,这个时候可移植。
stap -p4 -r kernel_version script -m module_name
//parse, elaborate, translate(.c), compile(.ko), run
stap -g -F -DSTP_NO_OVERLOAD -DMAXMAPENTRIES=102400 -DMAXACTION=102400 -p4 -r $(uname -r) "+working_dir+"stpfile/syscall.stp "+working_dir+"kofile -m
2.运行构建的模块
将其加载到运行的内核中执行
staprun module_name.ko
staprun -vv "+working_dir+"kofile/ksyscallmo.ko
stap的参数
https://sourceware.org/systemtap/SystemTap_Beginners_Guide/using-usage.html
-v[v?]? 展示详细的信息,想查运行中的脚本出错情况用-vvv
-e #把字符串的话当脚本执行 stap -e 'probe vfs.read {exit()}' -v
相当于 echo "probe timer.s(1) {exit()}" | stap -v -
-o file_name #标准输出输出的奥file_na