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生成带有雪花背景的验证码
Sep 28 PHP
php 全局变量范围分析
Aug 07 PHP
PHP XML数据解析代码
May 26 PHP
PHP生成excel时单元格内换行问题的解决方法
Aug 26 PHP
php 注释规范
Mar 29 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
php实现zip文件解压操作
Nov 03 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
thinkphp5框架扩展redis类方法示例
May 06 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 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字符串截取的简单方法
2013/07/04 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php生成无限栏目树
2017/03/16 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python连接DB2数据库
2016/08/27 Python
Python实现抢购IPhone手机
2018/02/07 Python
Python操作json的方法实例分析
2018/12/06 Python
python调用摄像头拍摄数据集
2019/06/01 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python2与Python3的区别详解
2020/02/09 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
保时捷设计:Porsche Design
2019/03/30 全球购物
数据库方面面试题
2012/04/22 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
开学寄语大全
2014/04/08 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
python运算符之与用户交互
2022/04/13 Python