ホームページ  >  記事  >  PHPフレームワーク  >  スウールエラーを確認する方法

スウールエラーを確認する方法

尚
オリジナル
2019-12-17 09:17:392676ブラウズ

スウールエラーを確認する方法

#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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。