跨不同Linux 發行版調試核心檔案
當核心檔案在與您的開發環境不同的Linux 發行版上產生時,堆疊追蹤可能並不完全有意義。動態連結的可執行檔依賴共用庫中的位址,而這些位址在不同的發行版之間可能有所不同。 GDB 可能會錯誤地將崩潰歸因於您的庫副本中的函數,而客戶的系統可能在同一地址具有不同的函數。
要驗證堆疊追蹤的準確性,可以反組譯有問題的函數顯示該位址屬於一條指令或前面有一條非 CALL 指令。在這種情況下,堆疊追蹤是不可靠的。
要獲得更準確的跟踪,您可以要求客戶提供有問題的二進製文件使用的以下庫:
在您的系統:
最佳化偵錯二進位檔案
與其建議客戶執行-g二進位文件,首選方法是使用-g 和-O2 優化標誌構建二進位文件,並在分發之前去除調試信息:
這允許完整的符號調試(文件/行、局部變量),而無需共享敏感的源代碼詳細資訊。
以上是如何準確調試不同Linux發行版產生的核心檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!