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语法(5)
Oct 09 PHP
一篇不错的PHP基础学习笔记
Mar 18 PHP
PHP开发中常用的8个小技巧
Aug 27 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
php旋转图片90度的方法
Nov 07 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
php session的锁和并发
Jan 22 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
php外部执行命令函数用法小结
Oct 11 PHP
thinkPHP5 tablib标签库自定义方法详解
May 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程序员编程注意事项
2008/04/10 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
Python实现身份证号码解析
2015/09/01 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
介绍一下Java的安全机制
2012/06/28 面试题
学雷锋的心得体会
2014/09/04 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
基于tensorflow权重文件的解读
2021/05/26 Python