ホームページ  >  記事  >  バックエンド開発  >  nginx の追跡とデバッグ

nginx の追跡とデバッグ

WBOY
WBOYオリジナル
2016-08-08 09:30:521204ブラウズ

デバッグを通じて、問題を簡単に特定し、バグを解決できます。

この記事は、主に本で言及されている内容を要約しています。詳細は、ゆっくりと読みながら体験するため、ゆっくりと更新されます。は主に 6 つの部分に分かれています:

1. GDB を使用したデバッグ:

具体的なデバッグ方法については、「Nginx 学習 14-GDB デバッグ Nginx 予備テスト」および「Nginx の詳細分析」の著者のブログを参照してください。 ": クリックしてリンクを開きます

実際、前のセクションの方法を使用すると、Eclipse を使用してコードを簡単にデバッグできます。もちろん、gdb はコマンド ラインを使用する方がより柔軟です。

パラメーターを使用して gdb デバッグを入力します:

gdb --args ./nginx -c /home/zy/code/web/nginx-1.6.2/conf/nginx.conf
入力後は、ブレークポイント/シングルステップデバッグ/観察ポイントの設定とその他の特定のデバッグテクニックです

2. ログ情報を使用して Nginx を追跡します:

printf が小さなプログラムの印刷関数であることはわかっています。プログラムが大きい場合、printf はそれほど柔軟ではありません。したがって、すべてのシステムは、Linux カーネル/NS3 ネットワーク シミュレーション ツールなど、さまざまなレベルの出力制御を提供します。設定でログ情報のディレクトリとレベルを設定します。次に、プログラム内で ngx_log_xxx() 一連の関数を呼び出します。

3. strace/pstack を使用してプログラムをデバッグします。

これら 2 つのコマンドを使用して、次に、pstack 自体は gdb を使用して実装されたシェル スクリプトです。

たとえば、関数を実装するためのアルゴリズムを作成します。正確には、メイン関数で出力を構築し、これらを出力する必要があります。コードの追加のテストはスタブ テストです。また、スタブ テストは、リンク

5 を開きます。

特定の状況下でのみ実行される特定のことをテストするには、ソケット通信用の独自のクライアントを作成してください。コードが到着しました

上記では、

nginx の追跡とデバッグについて、その側面も含めて紹介していますが、PHP チュートリアルに興味のある友人に役立つことを願っています。

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