顧客システムからのコア ファイルのデバッグは、特にソフトウェアがデバッグ シンボルなしでコンパイルされている場合に困難になることがあります。この問題に対処するために、このガイドでは、効果的なコア ファイル分析のための洞察とリソースを提供します。
コア ファイルが開発環境とは異なる Linux ディストリビューションから生成される場合、スタック トレースは意味がないかもしれない。これは、GDB が共有ライブラリのローカル コピー内の関数アドレスを検索し、顧客のシステム上の関数アドレスとは異なる可能性があるためです。正確なスタック トレースを取得するには、顧客の共有ライブラリのコピーを取得し、(gdb) set solib-absolute-prefix /path/to/libraries.
Linux および Solaris のデバッグに関する推奨書籍Linux および Solaris の高度なデバッグについては、以下を考慮してください。書籍:Program terminated with signal 11, Segmentation fault. #0 0xffffe410 in __kernel_vsyscall () (gdb) where #0 0xffffe410 in __kernel_vsyscall () #1 0x00454ff1 in select () from /lib/libc.so.6 ... <omitted frames>意味のあるスタック トレースを得るには、お客様のシステムから libc.so.6 ライブラリを取得し、GDB にプレフィックス パスを設定します。次に、(gdb) where コマンドを発行して、修正されたスタックを表示します。デバッグ可能なバイナリを配布する代替アプローチ-g バイナリを顧客に配布する代わりに、次のアプローチを検討してください。
以上が異なる Linux ディストリビューションを使用して、リモートの顧客システムからコア ファイルを効果的にデバッグするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。