登录 注册
您的位置:首页> 建站知识 > 危机公关
网站制作公司网站: 目标变量
标签:危机公关
发表日期:2018-11-05 06:38:35     文章编辑:admin     浏览次数:110

网站制作公司网站: 目标变量

本运行结束时

000个内核jiffy触发一次

续表

00毫秒触发一次,带有线性分布的随机附加时间(-50+50

    除了这些内置事件以外,stap还有一些额外的函数提供。类似于其他编程语言的库的

概念,这些函数一般是由/usr/share/systemtap/tapset/目录下的近百个stp脚本提供的。

常见的函数如表1-5所示。

1-5

    事件类型

  pid()

  uid()

  execname()

  tid()

  gettimeofday_s()

  print_backtrace()

    2.控制结构

    )1

探针触发时刻

00分至今的秒数

控制结构和awk很像,具体如表1-6所示。

1-6

 

     

     

if(exp) {} else {}

标准的if-then-else语句

for (expl ; exp2 ; exp3 ) {}

一个for循环

while (exp) {}

标准的while循环

do {} while (exp)

一个do-while循环

break

退出迭代

contmue

继续迭代

next

从探针返回

retum

从函数返回一个表达式

foreach(VAR in ARRAY) {}

迭代一个数组,将当前的键分配给VAR

 目标变量

    在控制结构和探针进入目标之后,需要通过对应的变量来显示当前位置可见的变量

值。stap在这里会区分变量类型,如果是结构体,那么可以用->来查看其具体成员的值。

这个写法很像Perl中的散列取值。

    通常有以下几个值是可读的。

      $$vars:打印probe点处的每个变量,类似下面这行语句的作用。

      $$locals$$vars子集,仅打印local变量。

$$parms$$vars子集,仅包含函数参数。

$$return:仅在return probes中存在,如果没有返回值,则是空串。类似下面这

样语句的作用。

sprintf f”retHrn-%x’’≯I$瑟辔鬻疆鹫缓莪薹囊曩蠢瑟曩譬量麓_曩曩曩:i_…。:一崔簟÷

注意,$$parms$$locals输出的值是内存映射地址,效果如下。

    # stap -e

exit () ;  l'

probe kernel.function("vfs read") {printf("%s\n", $$parms);

file=Oxffff8800b40d4c80

af96df48

buf=Ox7fff634403eo count=Ox2004 pos-Oxffff8800-

    通过这个可以看出具体有哪些变量名,但是其内容是看不到的,所以要在后面加一个

$,就可以看到具体的结构体成员和字符串了。

    可以看出,file结构体的成员信息依然不明确。要彻底展开的话,再加一个$就可以了,

不过输出会受限于最大字符串的长度,效果如下。

    # stap

exit () ,  I '

-e 'probe kernel.function("vfs read") {printf("%s\n", $$parms$$),

           file= {  . f_u- {  . fu_list- {  . next-Oxffff8 8 0}13 3 6caOe8,

}, .fu rcuhead={.next=Oxffff8801336caOe8

 

 

 

 

 

 

留言预约
关于我们
易神州网络-专业的软件开发和品牌营销公司,提供互联网基础服务与数字营销产品解决方案专家,14年丰富的软件开发、品牌策划营销。擅长于系统化解决企业品牌在互联网上的统一性传播,企业品牌在互联网上的应用。我们协助您通过在线品牌的塑造,建立长久的企业品牌价值。
联系我们
400-611-0508
周一至周六9:00-18:00
全方位的营销咨询   精准的解决方案
地址:北京市丰台科技园汉威国际四区8号楼7层
关注公众号