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

  • 相关阅读:
    c++ 为自定义类添加stl遍历器风格的遍历方式
    C++ 生成随机数
    c/c++ 函数说明以及技巧总结
    XSLT 教程
    C# 高效过滤DataTable 中重复数据方法
    xml获取指定节点的路径
    TreeView控件
    推荐一些C#相关的网站、资源和书籍
    C#多线程操作
    C#二进制序列化
  • 原文地址:https://www.cnblogs.com/jinyz/p/3047433.html
Copyright © 2011-2022 走看看