SystemTap
来源:互联网 发布:雾霾危害 知乎 编辑:程序博客网 时间:2024/05/16 00:41
安装
sudo apt-get install build-essential
sudo apt-get install elfutils
sudo apt-get install libdw-dev
wget wget https://sourceware.org/systemtap/ftp/releases/systemtap-2.4.tar.gz
tar -xzvf systemtap-2.4.tar.gz
cd systemtap-2.4
./configure
sudo make
sudo make install
测试语句
sudo stap --all-modules -ve 'probe begin { log("hello world") exit () }'
sudo stap -ve 'probe begin { log("hello world") exit () }'
sudo stap -ve 'probe kernel.function("sys_open") {log("hello world") exit()}'
sudo stap -ve 'probe module("libiscsi").function("iscsi_queuecommand") {log("hello world") exit()}'
打印堆栈
print_backtrace--all-modules加载所有模块,显示堆栈信息
在Ubuntu上使用SystemTap
http://www.ningoo.net/html/2010/use_systemtap_on_ubuntu.html
ubuntu+systemtap进行Linux内核和用户空间开发测试
http://blog.csdn.net/sailor_8318/article/details/25076745
SystemTap在Ubuntu 12.04上的安装 Build-id mismatch
http://www.it165.net/os/html/201310/6486.html
使用systemtap调试linux内核
http://blog.csdn.net/heli007/article/details/7187748
利用systemtap定位ifconfig dropped数据包的原因
http://www.it165.net/os/html/201308/5944.html
范例
https://sourceware.org/systemtap/wiki
System语言详解
http://blog.csdn.net/linyt/article/details/5204841
sudo apt-get install build-essential
sudo apt-get install elfutils
sudo apt-get install libdw-dev
wget wget https://sourceware.org/systemtap/ftp/releases/systemtap-2.4.tar.gz
tar -xzvf systemtap-2.4.tar.gz
cd systemtap-2.4
./configure
sudo make
sudo make install
测试语句
sudo stap --all-modules -ve 'probe begin { log("hello world") exit () }'
sudo stap -ve 'probe begin { log("hello world") exit () }'
sudo stap -ve 'probe kernel.function("sys_open") {log("hello world") exit()}'
sudo stap -ve 'probe module("libiscsi").function("iscsi_queuecommand") {log("hello world") exit()}'
打印堆栈
print_backtrace--all-modules加载所有模块,显示堆栈信息
在Ubuntu上使用SystemTap
http://www.ningoo.net/html/2010/use_systemtap_on_ubuntu.html
ubuntu+systemtap进行Linux内核和用户空间开发测试
http://blog.csdn.net/sailor_8318/article/details/25076745
SystemTap在Ubuntu 12.04上的安装 Build-id mismatch
http://www.it165.net/os/html/201310/6486.html
使用systemtap调试linux内核
http://blog.csdn.net/heli007/article/details/7187748
利用systemtap定位ifconfig dropped数据包的原因
http://www.it165.net/os/html/201308/5944.html
范例
https://sourceware.org/systemtap/wiki
System语言详解
http://blog.csdn.net/linyt/article/details/5204841
#! /usr/bin/env stap global host_no = 17global channel = 0global targetid = 0global lunid = 15# 判断io是否下发到iscsiprobe module("libiscsi").function("iscsi_queuecommand"){ if ( $host!=0 && $sc!=0 ) { if ( $host->host_no==host_no && $sc->device->channel==channel && $sc->device->id==targetid && $sc->device->lun==lunid ) { printf("====================send scsi=======================\n") printf("tag = %d\n", $sc->tag) printf("serial_number = %lu\n", $sc->serial_number) printf("jiffies_at_alloc = %lu\n", $sc->jiffies_at_alloc) print_backtrace() printf("\n") } }}probe kernel.function("do_sync_read"){ if ($filp!=0) { if ($filp->f_inode!=0) { if ($filp->f_inode->i_ino == 3978543828) { printf("===========================================do_sync_read\n\n") } } }}# 判断IO在iscsi被正确下发probe module("libiscsi").statement("iscsi_queuecommand@libiscsi.c:1690"){ if ( $host!=0 && $sc!=0 ) { if ( $host->host_no==host_no && $sc->device->channel==channel && $sc->device->id==targetid && $sc->device->lun==lunid ) { printf("====================cmd sended=======================\n") printf("reason=%d\n", $reason) printf("\n") } }}# 判断IO是否返回probe module("libiscsi").function("__iscsi_put_task"){ if ($task != 0) { if ($task->sc != 0) { if ( $task->sc->device->host->host_no==host_no && $task->sc->device->channel==channel && $task->sc->device->id==targetid && $task->sc->device->lun==lunid ) { printf("*************************recv scsi********************\n") printf("tag = %d\n", $task->sc->tag) printf("serial_number = %lu\n", $task->sc->serial_number) printf("jiffies_at_alloc = %lu\n", $task->sc->jiffies_at_alloc) print_backtrace() printf("\n") } } }}
0 0
- systemtap
- SystemTap
- SystemTap
- systemtap
- 【SystemTap】SystemTap的疑问
- SystemTap Beginner
- SystemTap Beginner
- systemtap安装
- SystemTap Beginner
- SYSTEMTAP安装
- SystemTap介绍
- Systemtap Install
- systemtap初探
- Systemtap简介
- systemtap安装
- 35. systemtap
- 【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
- 使用 SystemTap 调试内核
- Python(1)
- hdu2099 整除的位数(暴力)
- Android中实现静态的默认安装和卸载应用
- 用bat实现自启动程序
- alloc_netdev()与alloc_etherdev() (转)
- SystemTap
- [图论]Prim算法求最小支撑树和最短路径
- makefile 中的PHONY
- hdu2601 An easy problem(数学)
- fork与vfork思考
- linux c 进程创建fork()
- 渣打科营 Mini Code Marathon
- UML中的extend和include
- Python版代码混淆工具