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

  • 相关阅读:
    利用 Makefile 写的小程序
    linux内核学习之进程管理------task_struct结构体
    智能指针
    explicit 关键字
    ant脚本编写
    FROM_UNIXTIME 格式化MYSQL时间戳函数
    Dubbo架构设计详解-转
    Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转
    SiteMesh详解
    sitemesh使用步骤
  • 原文地址:https://www.cnblogs.com/jinyz/p/3047433.html
Copyright © 2011-2022 走看看