systemtap是一个linux下的系统调用和跟踪程序,如果您在windows下用过filemon或者processmonitor的话就明白了.systemtap功能比processmonitor更强大一些,定制性更高些.但是显然,和大多数linux程序一样,也更难用!
为了装这个systemtap,翻了好多贴子,最简单的方法如下:
- 运行命令:sudo apt-get install linux-image-debug-`uname -r`
- 运行命令: sudo ln -s vmlinux-debug-`uname -r` vmlinux-`uname -r`
- 运行命令:sudo apt-get install systemtap
如此,就装好了,可以构造一个简单的脚本文件a.stp,如下:
probe syscall.open
{
printf ("%s(%d) open (%s)\n", execname(), pid(), argstr)
}
然后用命令运行:sudo stap ./a.stp 如果顺利的话,就可以看到输出了.不过我这里运行到pass5的时候报错:/usr/lib/systemtap/stapio terminated,正在查找原因中.
如果不习惯使用这么高定制性的工具的话,可以改用strace,用法简单:strace -f -o out_trace.txt /opt/eclipse/eclipse 我这里是用来跟踪eclipse运行时候的文件读写记录.
参考文献:
- http://blog.chinaunix.net/u/12679/showart_529575.html (注:这个方法不好用,我在xubuntu下界面出问题,而且stap无法运行)
-
- 有关systemtap脚本的编写
- http://www.ibm.com/developerworks/cn/linux/l-systemtap/ 使用Systemtap调试内核
- http://www.xxlinux.com/linux/article/development/soft/20051125/67.html 使用truss,strace,ltrace跟踪
阅读(1074) | 评论(0) | 转发(0) |