GDB 的哀嘆:解決缺少raise.c 的難題
捕獲異常時,GDB 中可能會出現一個惱人的錯誤,調試器感嘆缺少「raise.c」。為了解決這個問題,讓我們深入研究問題的根源及其解決方案。
根本原因
缺少的「raise.c」檔案對於 GDB 至關重要在偵錯期間提供準確的原始程式碼行資訊。如果沒有它,GDB 預設位置不確定,從而導致錯誤訊息混亂。
逐步解決方案
要有效解決此問題,請按照以下綜合步驟操作:
-
安裝Debuginfo 軟體套件: 確保安裝了C 函式庫的debuginfo 版本(“libc6-dbg”)。
-
啟用原始碼軟體包: 透過安裝「dpkg-dev」軟體包並檢查「/etc/apt/sources.list」中的deb-src 行是否未註解來準備Ubuntu 軟體包系統來處理原始碼套件。
-
下載原始碼:透過建立目錄(例如「/opt/src」)、執行「apt source libc6」並識別原始碼所在的目錄來取得已安裝的C 庫版本的原始碼代碼駐留(例如,“/opt/src/glibc-2.23”)。
-
指定原始碼位置: 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中文網其他相關文章!