swoole錯誤查看的方法

swoole錯誤查看的方法

當使用swoole發生段錯誤時,請及時向開發組報告。可以使用gdb工具來得到一份bt信息。使用gdb跟蹤需要在編譯swoole時增加–enable-debug參數。

如果不方便gdb,也可以提供一份可穩定復現的demo程序

打開core dump

ulimit?-c?unlimited

使用gdb來查看core dump信息。core文件一般在當前目錄,如果操作系統做了處理,將core dump文件放置到其他目錄,請替換為相應的路徑

gdb?php?core? gdb?php?/tmp/core.4596

在gdb下輸入bt查看調用信息

(gdb)bt Program?terminated?with?signal?11,?Segmentation?fault. #0??0x00007f1cdbe205e0?in?swServer_onTimer?(reactor=<value>,?event=...)?? ????at?/usr/local/php/swoole-swoole-1.5.9b/src/network/Server.c:92 92??????????????????????????????serv-&gt;onTimer(serv,?timer_node-&gt;interval); Missing?separate?debuginfos,?use:?debuginfo-install?php-cli-5.3.3-22.el6.x86_64</value>

在gdb中使用f指令查看代碼段

(gdb)f?1 (gdb)f?0

如果沒有函數調用棧信息,可能是編譯去除了debug信息。請手工修改swoole源碼目錄下的Makefile文件,修改CFLAGS為

CFLAGS?=?-Wall?-pthread?-g?-O0

推薦學習:?swoole視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享