首頁  >  文章  >  後端開發  >  為什麼GDB在Ubuntu中偵錯C異常時會報遺失檔案錯誤?

為什麼GDB在Ubuntu中偵錯C異常時會報遺失檔案錯誤?

DDD
DDD原創
2024-11-11 00:29:02541瀏覽

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 replacement-path /expected-location /actual-location.

一旦完成這些步驟,GDB 將能夠存取正確的原始程式碼並提供異常的準確偵錯資訊。

以上是為什麼GDB在Ubuntu中偵錯C異常時會報遺失檔案錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn