starce的用途和参数:http://man.linuxde.net/strace(linux命令大全)

strace命令是一个集诊断、调试、统计与一体 的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然 strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。

来自: http://man.linuxde.net/strace

strace命令是一个集诊断、调试、统计与一体 的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然 strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。

来自: http://man.linuxde.net/strace

以下是学习strace时看到的比较好的文章,收藏以便随时学习!

1. 火丁笔记:

http://huoding.com/2013/10/06/288

内容:服务器负载过高解决:strace分析php调用系统耗时,里边用了pgrep命令,参看:http://www.cnblogs.com/leezhxing/p/4519279.html

http://huoding.com/2015/10/16/474

内容:手把手教你用Strace诊断问题

2.Nginx+PHP-FPM优化技巧总结  :

http://blog.csdn.net/dc_726/article/details/12340349

内容: php的各种技巧,还有一个看rango的php7中的图表工具。

3.使用strace追踪多个进程 :

http://www.ttlsa.com/tools/use-strace-to-track-multiple-processes/

内容:因为php-fpm会有多个进程,博客中写了个脚本,里边用了pidof命令,是显示全部进程pid的,敲一下就知道了。

pidof命令和pgrep命令有点像呢~~

4.利用strace调试nginx :

http://book.51cto.com/art/201305/395383.htm

内容:里边详细讲了每个strace的调用的含义,可以查看。

5.整理

 strace分析nginx-fastcgi-php的调用:http://jackyrong.iteye.com/blog/1159278

strace分析redis的pconnect长连接http://blog.csdn.net/qmhball/article/details/46988111

使用strace, ltrace寻找故障原因的线索 http://blog.csdn.net/delphiwcdj/article/details/7387325

使用strace定位系统疑难杂症http://fishcried.com/2014-10-08/%E4%BD%BF%E7%94%A8strace%E8%BF%9B%E8%A1%8C%E8%B0%83%E8%AF%95/

6.一个论坛的提问:

strace -p PID分析php-fpm进程

at("/data/tdocs/webroot/go/./Widget/boutique.inc.php", 0x7fffc74cb320) = - ENOENT (No such file or directory)
lstat("/data/tdocs/webroot/go/./Widget/openapi.inc.php", 0x7fffc74cb320) = - ENOENT (No such file or directory)
lstat("/data/tdocs/webroot/go/./Widget/groupnew.inc.php", 0x7fffc74cb320) = - ENOENT (No such file or directory)
lstat("/data/tdocs/webroot/go/./Widget/groupStatistical.inc.php", 0x7fffc74cb320) = - ENOENT (No such file or directory)
lstat("/usr/share/pear/Widget/groupStatistical.inc.php", 0x7fffc74cb320) = - ENOENT (No such file or directory)
lstat("/usr/share/php/Widget/groupStatistical.inc.php", 0x7fffc74cb320) = - ENOENT (No such file or directory) 怎么找不到文件呢?这是程序员写的程序有问题吗?

解答:

如果我在程序里用file_exists($file)来判断文件存不存在,如果这个文件不存在,你strace里就会显示这种情况,其实PHP代码没有错。

那就是你include文件的时候没使用绝对路径(include '/a.php')或者相对路径(include './a.php'),你直接使用了include 'a.php',这种情况的话,先从当前目录找到文件存不存在,然后再从include_path查看文件存不存在。 我这些都是打个比方,strace的提示,确实是PHP在找这个文件,没找到,但并不是说PHP代码就有问题

strace命令(收集整理,常看常新)的更多相关文章

  1. 【Python从入门到精通】(十)Python流程控制的关键字该怎么用呢?【收藏下来,常看常新】

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 这篇文章主要介绍Python中流程控制的关键字的使用,涉及到if else,for,while等关键字 干货满满,建议收藏,需要用到时常看看. 小 ...

  2. Linux下查找命令(收集整理)

    原文:http://blog.csdn.net/sunstars2009918/article/details/8510878 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在 ...

  3. git命令收集整理

    git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...

  4. 常看常遇见之一——BS架构VS CS架构

    常看常遇见之一——BS架构VS CS架构 1.BS架构 即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构.在这种结构下,用户 ...

  5. 收集整理的oracle常用命令大全

    一.Oracle的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...

  6. [转帖]PKI技术原理(收集 整理 归纳)

    PKI技术原理(收集 整理 归纳) https://blog.51cto.com/3layer/20430 总结归纳的 灰常好.. 7layer关注8人评论39427人阅读2007-03-14 11: ...

  7. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  8. linux的strace命令用法

    strace命令用法 调用:strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] …[ -ofile ] [ -ppid ] … [ -sstrsize ...

  9. strace命令详解

    转自: http://www.cnblogs.com/ahuo/p/4150623.html 备注: 这篇博文学到的不仅仅是 strace 这个命令,还有前辈的排错思路,致敬! strace 命令是一 ...

随机推荐

  1. 管理系统UI: System Bar 详解

    Google原文: http://developer.android.com/training/system-ui/index.html 管理系统UI之一:淡化System Bar(Dimming t ...

  2. 绘图: Shape, Path

    Shape - 图形 Path - 路径 示例1.演示“Shape”相关知识点Drawing/Shape.xaml <Page x:Class="Windows10.Drawing.S ...

  3. nginx--配置https服务器

    1.下载安装nginx: nginx可以从这里选择对应版本下载,我下载的是1.8.1版本.下载完成后,直接解压缩,命令窗口进入根目录,输入命令: start nginx 在浏览器中,直接输入" ...

  4. Sublime Text 3配置C++编译运行

    2016.9.8更新: linux(Ubuntu16.04)下的配置,编译后用终端运行,解决了不能输入的问题 { "encoding": "utf-8", &q ...

  5. Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法

    Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found. 解决办法: 修改/etc/hadoop/hadoop-env.sh ...

  6. hdu 5241 数学题= =

    题意:balabala 题意里给出了好多集合之间的关系,一开始以为要用离散一步一步推什么的... [然而其实并没有什么卵用 对于每一种语言来说,这种语言谁会谁不会是的方案数一定,而且语言之间相互独立的 ...

  7. Deformity JSP Webshell、Webshell Hidden Learning

    catalogue . JSP基础语法 . JSP Lexer By Lua . Open Source Code Analyzers in Java . WEBSHELL Samples . she ...

  8. Discuz! X2.5 /source/class/helper/helper_seo.php Remote Code Execution Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 SEO模块中的preg_replace+修正符e+双引号引发的远程代码执 ...

  9. lua的corroutine学习

    lua的corroutine学习 function receive (prod) local status, value = coroutine.resume(prod) return value e ...

  10. php Unable to find the wrapper "https"

    php -m | grep -i --color openssl php 没有openssl模块 cd /data/source/php-5.3.29/ext/openssl #php的解压包下面 y ...