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 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
php字符串函数学习之strstr()
Mar 27 PHP
php处理复杂xml数据示例
Jul 11 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
基于php实现的验证码小程序
2016/12/13 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
Jquery取得iframe下内容的方法
2013/11/18 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
python基础教程之五种数据类型详解
2017/01/12 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
python conda操作方法
2019/09/11 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
苹果台湾官网:Apple台湾
2019/01/05 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
使用索引有什么好处
2016/07/27 面试题
医学护理系毕业生求职信
2013/10/01 职场文书
仓管员岗位职责范文
2013/11/08 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
解除财产保全担保书
2014/05/20 职场文书
教师节简报
2015/07/20 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers