為我的專案生成的除錯資訊-g增加了大量的二進制大小和編譯時間開銷。我想使用更瘦的-gline-tables-only,但不確定我會失去什么。例如,行斷點仍然有效嗎?p var_name在 LLDB 中呢?我正在使用clangand swiftc,它們都依賴于 LLVM。
uj5u.com熱心網友回復:
-gline-tables-only 確實只記錄了除錯資訊的地址->行號部分。因此,通過檔案和行設定中斷大部分仍然有效(一些行內資訊不會進入官方的“行表”,并且會丟失),并且您將在回溯中看到行資訊。
但是,它缺少所有范圍/變數/型別資訊。所以消費者不會知道當前范圍內有哪些變數,或者你的程式中的任何地方(所以v你的 IDE 的 Locals 視圖將不起作用)。即使它確實知道變數也無法列印它,因為 lldb 也不知道型別。所以你也不能真正expr用來投射和列印原始地址。
當您真正關心的是從崩潰報告等中獲取行號資訊時,-gline-tables-only 對于除錯資訊的長期存盤很有用。它對實際除錯沒有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476984.html
