linux命令之调试工具strace的深入分析


Posted in PHP onJune 03, 2013

参考
1《linux的strace命令(详解).txt》 新浪电子书可下载
2man strace
一个基本上通用的 完整的用法:
strace -o output.txt -T -tt -e trace=all -p 28979
上面的含义是 跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面。
必须记住的几个用法
1)strace -p pid  可以跟踪某个后台进程
2)strace -o filename 把跟踪结果输出到文件
3)strace -T 记录每个系统调用花费的时间,可以看看哪个系统调用时间长
4)strace -t (或者 -tt)记录每个系统调用发生是的时间(时分秒的格式)
5)strace -s 1024 显示系统调用参数时,对于字符串显示的长度, 默认是32,如果字符串参数很长,很多信息显示不出来。
6)strace -e trace=nanosleep 只记录相关的系统调用信息。
    -e trace=network // 只记录和网络api相关的系统调用
    -e trace=file // 只记录涉及到文件名的系统调用
    -e trace=desc // 只记录涉及到文件句柄的系统调用
还有其他的包括process,ipc,signal等。
一个经典的,通过strace查看一个进程所有相关打开文件的排查过程,参考《linux的strace命令(详解).txt》 新浪电子书可下载
如果开发程序没有一个强大的工具相伴,那么开发效率会非常低,甚至遇到问题无从下手. 现在开始学习linux下的强大的调试工具strace,并记录于此.
strace
1)类似于windows下的processexp.exe
   可以监控系统调用
2)类似于windows下的depand工具
   可以检查程序的依赖库. 比linux下的ldd更强大.
   参考:strace命令用法 
   点击下载
   案例:
strace帮助我解决不知日志文件被打印到哪的问题.
   用strace跟踪server
   /usr/bin/strace -p pid -o out.file
   然后执行client端,然后结束strace,查看out.file 搜索write,open的系统调用

PHP 相关文章推荐
我的论坛源代码(九)
Oct 09 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
php动态函数调用方法
May 21 PHP
php结合正则获取字符串中数字
Jun 19 PHP
php+mysql实现无限级分类
Nov 11 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
php微信开发之关键词回复功能
Jun 13 PHP
如何使用Strace调试工具
Jun 03 #PHP
鸡肋的PHP单例模式应用详解
Jun 03 #PHP
phpize的深入理解
Jun 03 #PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 #PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 #PHP
深入PHP操作MongoDB的技术总结
Jun 02 #PHP
深入php数据采集的详解
Jun 02 #PHP
You might like
php设置页面超时时间解决方法
2015/09/22 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
python实现倒计时小工具
2019/07/29 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python request操作步骤及代码实例
2020/04/13 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
无工作经验者个人求职信范文
2013/12/22 职场文书
医药销售求职信范文
2014/02/01 职场文书
土建工程师岗位职责
2014/06/10 职场文书
标准毕业生自荐信
2014/06/24 职场文书
读群众路线的心得体会
2014/09/03 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
重阳节活动主持词
2015/07/04 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技
Python面试不修改数组找出重复的数字
2022/05/20 Python