顧客のシステムで生成されたコア ファイルのデバッグ
顧客のマシンでソフトウェアがクラッシュした場合、コア ファイルを生成すると、原因。ただし、開発に使用したものとは異なる Linux ディストリビューションからコア ファイルをデバッグする場合は、特定の考慮事項が発生します。
コア ファイル スタック トレースに対する異なる Linux ディストリビューションの影響
実行可能ファイルが動的にリンクされている場合、コア ファイルが別の Linux ディストリビューションからのものである場合、GDB によって生成されたスタック トレースは意味をなさない可能性があります。 GDB は、共有ライブラリのコピー内のデバッグ シンボルに依存してコール スタックを解釈します。ただし、これらのシンボルは、顧客のシステム上のライブラリ内のシンボルと一致しない可能性があります。
この問題に対処するには、顧客のシステムから共有ライブラリを取得し、set solib-absolute-prefix を使用してその絶対パスを指定します。 GDBのコマンド。これにより、GDB はコア ファイルを解釈するために正しいデバッグ シンボルを使用するようになります。
推奨されるデバッグ アプローチ
デバッグ ビルドを実行するよう顧客にアドバイスするよりも、その方がより現実的です。ストリップされたデバッグ ビルドをコンパイルし (-g -O2)、ストリップ バージョンを配布する際にデバッグ目的で使用します (-O2)。お客様へ。このアプローチでは、不必要なソース コードの詳細を明らかにすることなく、完全なシンボリック情報が提供されます。
続きを読む
Linux または Solaris で強化されたデバッグ機能については、次のリソースを検討してください。
これらのリソースでは、アセンブリ レベルの分析を含む、複雑なデバッグ シナリオを解決するための実践的な例と高度なヒントが提供されます。
以上が現在の開発環境とは異なる Linux ディストリビューションからコア ファイルを効果的にデバッグするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。