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与SQL注入攻击[二]
Apr 17 PHP
PHP之变量、常量学习笔记
Mar 27 PHP
PHP操作xml代码
Jun 17 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
PHP数组函数array_multisort()用法实例分析
Apr 02 PHP
PHP异步进程助手async-helper
Feb 05 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
jQuery中的常用事件总结
2009/12/27 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
python测试驱动开发实例
2014/10/08 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
解决Django no such table: django_session的问题
2020/04/07 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
面向对象概念面试题(.NET)
2016/11/04 面试题
党课心得体会范文
2014/09/09 职场文书
教育合作协议范本
2014/10/17 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL