GDB の嘆き: raise.c の欠落の難問を解決する
GDB では例外をキャッチする際に迷惑なエラーが発生する可能性があり、デバッガは「raise.c」がないこと。この問題を解決するために、問題とその解決策の深部を掘り下げてみましょう。
根本的な原因
不足している「raise.c」ファイルは GDB にとって重要ですデバッグ中に正確なソース行情報を提供します。これがないと、GDB はデフォルトで不確実な場所に設定され、わかりにくいエラー メッセージが表示されます。
段階的な解決策
この問題に効果的に対処するには、次の包括的な手順に従ってください。
-
Debuginfo パッケージをインストールします: C ライブラリの debuginfo バージョン (「libc6-dbg」) がインストールされています。
-
ソース コード パッケージを有効にする: 「dpkg-dev」をインストールして、ソース コード パッケージを処理できるように Ubuntu パッケージ システムを準備します。 " パッケージを作成し、"/etc/apt/sources.list" 内の deb-src 行がコメントなし。
-
ソース コードのダウンロード: ディレクトリ (例: "/opt/src") を作成し、"apt source libc6" を実行して、インストールされている C ライブラリ バージョンのソース コードを取得します。ソースコードが存在するディレクトリを特定します(例: "/opt/src/glibc-2.23").
-
ソース コードの場所を指定: GDB は、ソース コードが特定の場所にあることを期待します。 「info source」などの「gdb」コマンドを使用して、予想されるディレクトリを決定します。実際のディレクトリと予想されるディレクトリが異なる場合は、「set replace-path /build/glibc-KM3i_a/glibc-2.23 /opt/src/glibc-2.23」を使用して GDB のパスを更新します。
結論
これらの手順に従うことで、GDB からの不足に関する苦情は解決されます。ソース ファイルはサイレント化され、例外のシームレスなデバッグが可能になります。自信を持って C ライブラリ コードの奥深くまでナビゲートできるようになり、実行時の問題を正確に診断して解決できるようになりました。
以上がGDB が例外をキャッチするときに「raise.c がありません」と叫ぶのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。