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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
php单件模式结合命令链模式使用说明
Sep 07 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
php查找字符串出现次数的方法
Dec 01 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
搭建自己的PHP MVC框架详解
Aug 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中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
django 常用orm操作详解
2017/09/13 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
keras:model.compile损失函数的用法
2020/07/01 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
网站编辑求职信
2013/10/17 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
学习保证书怎么写
2015/02/26 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
Nginx配置使用详解
2022/07/07 Servers
Go gorilla/sessions库安装使用
2022/08/14 Golang