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分页函数代码(简单实用型)
Dec 02 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
PHP处理会话函数大总结
Aug 05 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python模块之re正则表达式详解
2017/02/03 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python代码能做成软件吗
2020/07/24 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
英国网上购买门:Direct Doors
2018/06/07 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
个人贷款授权委托书样本
2014/10/07 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
公积金具结保证书
2015/05/11 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python
MySQL事务的隔离级别详情
2022/07/15 MySQL