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脚本,列出系统调用堆栈
    脚本如下:

  • 相关阅读:
    MinGW-编译器
    Enum , Enum Class ?
    C++编译器之间的不同性能
    交叉验证
    经验风险最小化-结构风险最小化
    图像卷积
    pytorch官网上两个例程
    ORB feature(O for orientation)
    Catalan数
    无责任共享 Coursera、Udacity 等课程视频(转载)
  • 原文地址:https://www.cnblogs.com/jinyz/p/3047433.html
Copyright © 2011-2022 走看看