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 相关文章推荐
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
php文件操作相关类实例
Jun 18 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
Yii实现显示静态页的方法
Apr 25 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 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/06/10 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
js中less常用的方法小结
2017/08/09 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
python 图片验证码代码
2008/12/07 Python
详解python Todo清单实战
2018/11/01 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
python简单区块链模拟详解
2019/07/03 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
Python中如何定义一个函数
2016/09/06 面试题
如何写一份好的英文求职信
2014/03/19 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
实习报告怎么写
2019/06/20 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
52条SQL语句教你性能优化
2021/05/25 MySQL
Win11软件图标固定到任务栏
2022/04/19 数码科技