「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Ubuntu で C++ 例外をデバッグするときに GDB がファイル不足エラーを報告するのはなぜですか?

Ubuntu で C++ 例外をデバッグするときに GDB がファイル不足エラーを報告するのはなぜですか?

2024 年 11 月 14 日公開
ブラウズ:417

Why Does GDB Report a Missing File Error When Debugging C   Exceptions in Ubuntu?

GDB でライブラリ ソース コードのファイル不足エラーが表示される

GDB を使用して C 例外をデバッグすると、ファイルが見つからないことを示すエラー メッセージが表示される場合があります。 「raise.c」の「そのようなファイルまたはディレクトリはありません」などのファイル。このエラーは、例外が正しく処理された場合でも発生する可能性があります。

解決策: ライブラリのソース コードとデバッグ情報を取得する

この問題に対処するには、関連するライブラリ (この場合は libc6) のソース コードとデバッグ情報。 Ubuntu は、この目的のために debuginfo パッケージを提供します。

C ライブラリ ソース コードをデバッグする手順:

  1. libc6 の debuginfo バージョンをインストールします: sudo apt install libc6- dbg.
  2. ソース コードをダウンロードするようにパッケージ システムを構成するパッケージ:

    • dpkg-dev をインストールします: sudo apt install dpkg-dev.
    • 必要に応じて /etc/apt/sources.list の「deb-src」行のコメントを解除します。
  3. ダウンロードソースコード:

    • ディレクトリを作成します: /opt/src.
    • ソース コードをダウンロードします: apt source libc6.
    • ソース コード ディレクトリに注意してください (例: /opt) /src/glibc-2.23).
  4. GDB を調整しますソース コード ディレクトリ:

    • (gdb) 情報ソースを使用して、予想されるソース コード ディレクトリを特定します。
    • ソース コードを予想される場所に移動またはシンボリックリンクするか、代替パスを設定します:( gdb) set replace-path /expected-location /actual-location.

これらの手順が完了したら、 GDB は正しいソース コードにアクセスし、例外に関する正確なデバッグ情報を提供できるようになります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3