linux命令之调试工具strace的深入分析

2015-01-24信息快讯网

本篇文章是对调试工具strace的使用进行了详细的分析介绍,需要的朋友参考下

参考
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的系统调用
单点登录 Ucenter示例分析
php操作mysqli(示例代码)
PHP 使用pcntl和libevent 实现Timer功能
php模拟ping命令(php exec函数的使用方法)
php导入导出excel实例
PHP中include与require使用方法区别详解
div li的多行多列 无刷新分页示例代码
php mysql_real_escape_string函数用法与实例教程
ThinkPHP利用PHPMailer实现邮件发送实现代码
遭遇php的in_array低性能问题
PHP取整函数:ceil,floor,round,intval的区别详细解析
php取整函数ceil,floo,round的用法及介绍
php读取excel文件的简单实例
PHP mysql与mysqli事务使用说明 分享
浅析linux下apache服务器的配置和管理
基于Linux调试工具strace与gdb的常用命令总结
如何使用Strace调试工具
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
PHP下打开phpMyAdmin出现403错误的问题解决方法
解析php中mysql_connect与mysql_pconncet的区别详解
深入解析php之sphinx
php在window iis的莫名问题的测试方法
PHP处理excel cvs表格的方法实例介绍
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
解决phpmyadmin中缺少mysqli扩展问题的方法
PHP命名空间(Namespace)的使用详解
php中serialize序列化与json性能测试的示例分析
php笔记之:php函数range() round()和list()的使用说明
Eclipse中php插件安装及Xdebug配置的使用详解
php简单开启gzip压缩方法(zlib.output_compression)
php 调试利器debug_print_backtrace()
©2014-2024 dbsqp.com