當使用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->onTimer(serv,?timer_node->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
喜歡就支持一下吧
相關推薦