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 preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
php正则表达式使用方法整理集合
Jan 31 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管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
python里将list中元素依次向前移动一位
2014/09/12 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
总经理办公室主任岗位职责
2013/11/12 职场文书
单位未婚证明范本
2014/01/18 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
世界遗产导游词
2015/02/13 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js