mcpField
N
nginx-c-module-debug

nginx-c-module-debug

github.com/pproenca開発218249 回インストール11 週間前に更新
リポジトリ

nginx-c-module-debug について

nginx C モジュールの問題を診断する開発者向けリファレンススキルです。45の優先度付きルールで、クラッシュ、メモリ障害、リクエストフロー追跡、ログ、動的トレース、デバッグビルドを扱います。

主な機能

  1. 018カテゴリにわたる45のルール
  2. 02クラッシュとシグナルの診断
  3. 03メモリバグの検出
  4. 04GDB とコアダンプの分析
  5. 05リクエストフローの追跡
  6. 06ログ、プローブ、サニタイザーの設定

活用シーン

  1. 01nginx worker のクラッシュ調査
  2. 02メモリリークや破損の診断
  3. 03リクエストフェーズとフィルターチェーンの追跡
  4. 04GDB またはサニタイザーを使うデバッグ環境の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill nginx-c-module-debug

インストール後、Claude Code で/nginx-c-module-debugを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
assets/templates/
_template.md
references/
_sections.md
build-asan-configure.md
build-debug-flags.md
build-debug-palloc.md
build-single-process.md
build-valgrind-suppressions.md
crash-double-free-finalize.md
crash-error-page-redirect.md
crash-null-deref-pattern.md
crash-segfault-signature.md
crash-stack-overflow.md
crash-worker-exit-log.md
dbglog-debug-connection.md
dbglog-debug-mask.md
dbglog-format-ngx-str.md
dbglog-log-action-string.md
dbglog-memory-buffer.md
gdb-attach-worker.md
gdb-backtrace-read.md
gdb-coredump-setup.md
gdb-inspect-request.md
gdb-memory-buffer-extract.md
gdb-watchpoint-corruption.md
memdbg-buffer-overrun.md
memdbg-cleanup-handler-leak.md
memdbg-pool-leak-pattern.md
memdbg-slab-corruption.md
memdbg-temp-pool-misuse.md

詳細

nginx.org C モジュールのデバッグに関するベストプラクティス

公式の nginx 開発ドキュメントと本番環境でのデバッグ経験に基づく、nginx C モジュールの包括的なデバッグガイドです。8 カテゴリーにまたがる 45 のルールを影響度順にまとめ、nginx モジュールのクラッシュ、メモリのバグ、動作上の問題を体系的に診断できるようにします。

関連スキル:このスキルは、nginx-c-modules(正確性)および nginx-c-module-perf-reliability(パフォーマンス)を補完します。このスキルではデバッグと診断を扱います。

適用するタイミング

次の問題を診断する際に、これらのガイドラインを参照してください。

  • nginx ワーカーのクラッシュ(セグメンテーションフォルト、SIGABRT、SIGSEGV)の診断
  • メモリのバグ(解放後使用、メモリリーク、プールの破損、バッファーオーバーラン)の特定
  • nginx の GDB とコアダンプ解析のセットアップ
  • フェーズ、サブリクエスト、フィルターチェーンを通じたリクエストフローの追跡
  • デバッグログと動的トレーシングツールを使った nginx モジュールの計測

優先度別のルールカテゴリー

優先度カテゴリー影響度接頭辞
1クラッシュ診断とシグナルCRITICALcrash-
2メモリのバグの検出CRITICALmemdbg-
3GDB とコアダンプ解析HIGHgdb-
4リクエストフローの追跡HIGHtrace-
5デバッグログのパターンMEDIUM-HIGHdbglog-
6状態とライフサイクルのデバッグMEDIUMstate-
7動的トレーシングツールMEDIUMprobe-
8ビルドとサニタイザーの設定LOW-MEDIUMbuild-

クイックリファレンス

1. クラッシュ診断とシグナル(CRITICAL)
  • crash-segfault-signature - シグナルとアドレスからセグメンテーションフォルトのクラッシュシグネチャを特定する
  • crash-null-deref-pattern - nginx モジュールにおける NULL ポインター参照のパターンを認識する
  • crash-double-free-finalize - リクエストの参照カウントから二重 finalize によるクラッシュを診断する
  • crash-stack-overflow - 再帰的なサブリクエストやフィルターチェーンによるスタックオーバーフローを検出する
  • crash-worker-exit-log - ワーカーの終了ログメッセージからクラッシュの状況を抽出する
  • crash-error-page-redirect - error_page の内部リダイレクトによるコンテキスト無効化に起因するクラッシュを回避する
2. メモリのバグの検出(CRITICAL)
3. GDB とコアダンプの分析(HIGH)
  • gdb-coredump-setup - nginx ワーカーのクラッシュ時にコアダンプが生成されるように設定する
  • gdb-attach-worker - 実行中の nginx ワーカープロセスに GDB をアタッチする
  • gdb-backtrace-read - nginx のバックトレースを読み、クラッシュしたモジュールとフェーズを特定する
  • gdb-inspect-request - GDB で ngx_http_request_t のフィールドを調べ、リクエストの状態を確認する
  • gdb-memory-buffer-extract - GDB スクリプトを使ってメモリバッファからデバッグログを抽出する
  • gdb-watchpoint-corruption - GDB のウォッチポイントを使って、書き込み時にメモリ破損を検出する
4. リクエストフローのトレース(HIGH)
5. デバッグログのパターン(MEDIUM-HIGH)
  • dbglog-debug-mask - 対象を絞ったログフィルタリングに適したデバッグマスクを使用する
  • dbglog-debug-connection - debug_connection を使って、単一クライアントのデバッグ出力を分離する
  • dbglog-memory-buffer - メモリバッファーロギングを使い、ディスク I/O を行わずにデバッグ出力を取得する
  • dbglog-log-action-string - エラーメッセージにコンテキストを示すログアクション文字列を設定する
  • dbglog-format-ngx-str - デバッグログメッセージで ngx_str_t を正しくフォーマットする
6. 状態とライフサイクルのデバッグ(MEDIUM)
  • state-connection-lifecycle - ライフサイクルのデバッグ用に接続状態の遷移を追跡する
  • state-upstream-state-machine - 遷移点をログに記録してアップストリームモジュールの状態をデバッグする
  • state-timer-leak - プールの破棄前にイベントが削除されずに発生するタイマーリークを検出する
  • state-event-flag-debug - イベントフラグを調べ、予期しないハンドラーの呼び出しをデバッグする
  • state-request-count-track - リクエストの参照カウントを追跡し、早期破棄をデバッグする
7. 動的トレースツール(MEDIUM)
  • probe-strace-syscall - strace を使って nginx ワーカーのシステムコールパターンをトレースする
  • probe-dtrace-request - DTrace pid プロバイダーを使ってリクエスト処理をトレースする
  • probe-systemtap-pool - SystemTap を使ってメモリプールの割り当てをトレースする
  • probe-ebpf-latency - eBPF プローブを使って関数ごとのレイテンシを測定する
  • probe-strace-fd-leak - strace と /proc を使ってファイルディスクリプターのリークを検出する
8. ビルドとサニタイザーの設定(低〜中)
  • build-debug-flags - 完全なデバッグシンボルを付け、最適化を無効にして nginx をコンパイルします
  • build-asan-configure - メモリエラーを検出するために、AddressSanitizer を使用して nginx をビルドします
  • build-single-process - デバッグを簡素化するために、シングルプロセスモードを使用します
  • build-valgrind-suppressions - nginx の Valgrind 抑制設定を使用して、誤検知を減らします
  • build-debug-palloc - 細かなプール割り当て追跡のために NGX_DEBUG_PALLOC を有効にします

使用方法

詳しい説明とコード例については、各リファレンスファイルを参照してください。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリーの定義と順序
assets/templates/_template.md新しいルール用のテンプレート
metadata.jsonバージョンとリファレンス情報

コメント