調試不同發行版上產生的核心檔案
跨發行版的核心檔案意義
調試在開發環境以外的Linux 發行版上產生的核心檔案時,堆疊追蹤可能不可靠。動態連結的可執行檔使用共享庫,根據發行版的不同,共享庫可能有不同的實作。 GDB 將嘗試使用開發環境中可用的庫版本,該版本可能與客戶系統上的版本不同。因此,堆疊位址可能會對應到不同的例程或位於指令內,這表示堆疊追蹤不準確。
解決意義問題
要獲取有意義的堆疊跟踪,請從以下位置獲取所有共享庫客戶的系統並在 GDB 中設置 solib-absolute-prefix 路徑。這將重定向 GDB 以使用客戶的庫進行符號解析。
偵錯方法
建議客戶:
使用-g -O2 編譯以建立偵錯二進位檔案(myexe. dbg)。 - 刪除偵錯資訊 (strip -g myexe.dbg) 以建立生產二進位檔案 (myexe)。
- 將 myexe 分發給客戶。
- 在偵錯客戶產生的核心檔案時使用 myexe.dbg。
-
此方法提供完整的符號訊息,無需向客戶發送調試二進位檔案或暴露敏感原始碼代碼。
調試資源
進一步的調試見解,請考慮以下資源:
-
Linux:
-
Linux:
Linux:-
- Leonid 的“Linux 調試工具” Evdokimov
《掌握Linux 中的系統調試》作者:Paul Turner
Solaris:" Solaris 系統與效能調優》,作者:Mike WilsonMark Burgess 著的《實用Solaris 性能故障排除和調優》這些書提供了在Linux 和Solaris 上進行調試的真實示例和高級技術,包括組裝分析。
以上是如何可靠地調試不同 Linux 發行版上產生的核心檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!