Mac上gdb啟用pretty printers(STL格式美化)
阿新 • • 發佈:2018-12-19
0.背景
gdb原生態對於STL的輸出不太直觀,為了可以直觀的檢視STL的值,我們進行相關的配置。
1.方式概覽
提一下第二種方式,在大型專案中通常我們的容器也會巢狀別的容器,這種情況下第二種方式就比較弱了,不能很好的展示。
2.使用方式
使用下列命令下載python指令碼(需要安裝svn),這個指令碼在gdb高版本應該是自帶的,不過這裡我們統一下載下。最好放到一個容易辨識的資料夾裡,這裡取名字stl_pretty_printer。
# 需要安裝svn,預設mac是自帶的,如果沒有使用下列命令安裝 brew install svn # 建立stl_pretty_printer目錄 mkdir stl_pretty_printer # 進入 cd stl_pretty_printer # 下載指令碼 svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
.gbdinit
是gdb的配置檔案,在啟動的時候載入,我們需要將以下內容複製到其中。
python
import sys
sys.path.insert(0, '/xxx/xxx/stl_pretty_printer/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
重新啟動gdb即可。
如果執行了以上操作發現不起作用,或者在啟動gdb時候提示“不支援python的指令碼”,需要檢查在安裝gdb時候是否啟用了python支援。
./configure --with-python
如果在make的時候提示Python missing or unusable error while cross compiling GDB
,請切換到系統預設python或者安裝python-dev。
3.補充
為了格式更加美觀可以加上:
set print pretty on
如果出現During startup program terminated with signal ?, Unknown signal
這個錯誤,這個是因為mac系統的問題。加上:
set startup-with-shell off
Reference