摘要: 最近在帮同事解决Swoole Server问题时,发现有1个worker进程一直处于R的状态,而且CPU耗时非常高。初步断定是PHP代码中发生死循环。下面通过一段代码展示如何解决PHP死循环问题。#dead_loop.php$array = array();for($i = 0; $i handle... 阅读全文
posted @ 2014-07-07 17:38 暗痛 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段。然后,再仔细分析有问题的代码段,从而找出原因。如果你的程序使用的是c、c++编写,那么你可以很容易的找到正在执行的代码行。但是,... 阅读全文
posted @ 2014-07-07 17:36 暗痛 阅读(725) 评论(0) 推荐(0) 编辑
摘要: 扩展编译好用,通过php编码测试报“段错误",如果是c语言都是用gdb进行设置,那php扩展要如何进行调试呢?搜索了下,虽然是php扩展但是core是php 的core不是单个so扩展的coredump这里使用ulimit -c unlimited来开启core文件,使用gdb来对core文件进行调... 阅读全文
posted @ 2014-07-07 17:35 暗痛 阅读(3172) 评论(0) 推荐(0) 编辑
摘要: (转自)http://wiki.ubuntu.org.cn/%E7%94%A8GDB%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F使用GDB一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(c... 阅读全文
posted @ 2014-07-07 15:29 暗痛 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 如果之前安装过6.8或其它版本,请先删除以下目录rm -rf /usr/local/insightrm -rf /usr/share/tcltk如果之前设置过环境变量,也请删除unset TCL_LIBRARYunset ITCL_LIBRARY安装insight,ubuntu 10不能apt-ge... 阅读全文
posted @ 2014-07-07 15:24 暗痛 阅读(1648) 评论(0) 推荐(0) 编辑