首頁  >  文章  >  後端開發  >  為什麼 GDB 在捕捉異常時會喊「Missing raise.c」?

為什麼 GDB 在捕捉異常時會喊「Missing raise.c」?

Susan Sarandon
Susan Sarandon原創
2024-11-08 21:11:02342瀏覽

Why Does GDB Cry

GDB 的哀嘆:解決缺少raise.c 的難題

捕獲異常時,GDB 中可能會出現一個惱人的錯誤,調試器感嘆缺少「raise.c」。為了解決這個問題,讓我們深入研究問題的根源及其解決方案。

根本原因

缺少的「raise.c」檔案對於 GDB 至關重要在偵錯期間提供準確的原始程式碼行資訊。如果沒有它,GDB 預設位置不確定,從而導致錯誤訊息混亂。

逐步解決方案

要有效解決此問題,請按照以下綜合步驟操作:

  1. 安裝Debuginfo 軟體套件: 確保安裝了C 函式庫的debuginfo 版本(“libc6-dbg”)。
  2. 啟用原始碼軟體包: 透過安裝「dpkg-dev」軟體包並檢查「/etc/apt/sources.list」中的deb-src 行是否未註解來準備Ubuntu 軟體包系統來處理原始碼套件。
  3. 下載原始碼:透過建立目錄(例如「/opt/src」)、執行「apt source libc6」並識別原始碼所在的目錄來取得已安裝的C 庫版本的原始碼代碼駐留(例如,“/opt/src/glibc-2.23”)。
  4. 指定原始碼位置: GDB 期望原始碼位於特定位置。使用“gdb”指令(如“info source”)確定預期目錄。如果實際目錄與預期目錄不同,請使用「set replacement-path /build/glibc-KM3i_a/glibc-2.23 /opt/src/glibc-2.23.」更新 GDB 的路徑。

結論

透過遵守這些步驟,GDB 關於遺失原始檔案的抱怨將被消除,從而允許無縫調試異常。現在您可以自信地深入 C 庫程式碼,確保準確診斷和解決運行時問題。

以上是為什麼 GDB 在捕捉異常時會喊「Missing raise.c」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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