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 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
建立动态的WML站点(三)
Oct 09 PHP
php字符串截取问题
Nov 28 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
python实现感知器
2017/12/19 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
python常用运维脚本实例小结
2020/02/14 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
自我介绍演讲稿
2014/01/15 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
员工晚婚的请假条
2014/02/08 职场文书
高中班主任评语大全
2014/04/25 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
小石潭记导游词
2015/02/03 职场文书
校园之声广播稿
2015/08/18 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
Flask response响应的具体使用
2021/07/15 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记