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实现的随机广告显示代码
Jun 14 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
PHP RabbitMQ消息列队
May 11 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
基于python 凸包问题的解决
2020/04/16 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
家庭户外服装:Hawkshead
2017/11/02 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
学校后勤人员职责
2013/12/27 职场文书
2015年大学生实习评语
2015/03/25 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android