#swoole の使用中にセグメンテーション違反が発生した場合は、時間内に開発チームに報告してください。 gdb ツールを使用して、bt 情報のコピーを取得できます。 gdb トラッキングを使用するには、swoole のコンパイル時に --enable-debug パラメーターを追加する必要があります。
gdb が不便な場合は、安定して再現できるデモ プログラムを提供することもできます。
Open core dump
ulimit -c unlimited
Use gdb to view core dump情報。コア ファイルは通常、現在のディレクトリにあります。オペレーティング システムがコア ファイルを処理し、コア ダンプ ファイルを別のディレクトリに配置した場合は、対応するパスに置き換えてください。
gdb php core gdb php /tmp/core.4596
gdb の下に bt を入力して、コール スタックを表示してください。 information
(gdb)bt Program terminated with signal 11, Segmentation fault. #0 0x00007f1cdbe205e0 in swServer_onTimer (reactor=<value optimized out>, 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
gdb で f コマンドを使用してコード セグメントを表示します
(gdb)f 1 (gdb)f 0
関数呼び出しスタック情報がない場合は、コンパイル中にデバッグ情報が削除された可能性があります。 swoole ソース ディレクトリの Makefile を手動で変更し、CFLAGS を
CFLAGS = -Wall -pthread -g -O0
に変更してください。 推奨学習: swoole ビデオ チュートリアル
以上がスウールエラーを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。