zoukankan      html  css  js  c++  java
  • 研究性能测试工具之systemtap入门指南(五)

    [root@BL480-64 jinyz]# more topcaller.stp
    global bt
    probe syscall.open 
    {  if (execname() == "find") {bt[tid()] = backtrace()} }
    
    probe end {
      foreach (fn in bt-) { # Sort by call count (in decreasing order)
        printf("%d==%s\n", fn, bt[fn])
        print_stack(bt[fn])
        }
      exit()
    }
    输出结果:
    [root@BL480-64 jinyz]# stap topcaller.stp
    31812==0xffffffff80031061 0xffffffff8005d28d 0xffffffffda000000 0xffffffffffda0000 0xffffffffffffda00 0xffffffffffffffda 0xfffffffffff
     0xffffffff80031061 : sys_open+0x1/0x17 [kernel]
     0xffffffff8005d28d : add_disk_randomness+0xb6c/0x178b [kernel]
     0xffffffffda000000 : packet_exit+0x59be830f/0x7f1e830f [kernel]
     0xffffffffffda0000 : venosys_1+0x79f400/0x0 [kernel]
     0xffffffffffffda00 : venosys_1+0x9fce00/0x0 [kernel]
     0xffffffffffffffda : venosys_1+0x9ff3da/0x0 [kernel]
     0x00000fffffffffff
    31814==0xffffffff80031061 0xffffffff8005d28d 0xffffffffda000000 0xffffffffffda0000 0xffffffffffffda00 0xffffffffffffffda 0xfffffffffff
     0xffffffff80031061 : sys_open+0x1/0x17 [kernel]
     0xffffffff8005d28d : add_disk_randomness+0xb6c/0x178b [kernel]
     0xffffffffda000000 : packet_exit+0x59be830f/0x7f1e830f [kernel]
     0xffffffffffda0000 : venosys_1+0x79f400/0x0 [kernel]
     0xffffffffffffda00 : venosys_1+0x9fce00/0x0 [kernel]
     0xffffffffffffffda : venosys_1+0x9ff3da/0x0 [kernel]
     0x00000fffffffffff
    输出结果分析,add_disk_randomness函数调用sys_open系统调用,以后再研究具体分析find命令的源代码。
    

    4、 使用topcaller.stp脚本,列出系统调用堆栈
    脚本如下:

  • 相关阅读:
    linux 中的vim的配置文件的位置
    centos find
    multi-cursor
    ctrlsf插件
    Vim的可视模式
    Vim的tagbar插件
    Vim的tag系统
    ~/.ctag的作用与配置
    在Vim里使用gtags-cscope
    查看Vim的option变量的值
  • 原文地址:https://www.cnblogs.com/jinyz/p/3047433.html
Copyright © 2011-2022 走看看