what gdb?
Gdb是一款代碼調試工具。Mac下依舊支持,但是由于MacOS系統本身以及版本不協調等原因使用過程會遇到各種各樣的問題。本文詳細記錄了從Gdb安裝,鑰匙串配置過程。
安裝
方式1
brew install gdb
我的使用brew安裝未成功,所以我使用了方式2
編譯安裝
方式2
1.下載
下載地址
我下載的最新版 gdb-8.2.tar.gz
2.配置 編譯 安裝
# 配置
./configure
# 編譯
make -j4
# 安裝
make install
查看安裝
# 查看gdb版本
gdb -v
src gdb -v
GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
配置調試權限
運行如下命令報錯
(gdb) run
Starting program:
No executable file specified.
Use the "file" or "exec-file" command.
這是因為Darwin內核在你沒有特殊權限的情況下,不允許調試其他進程。調試某個進程,意味著對這個進程有完全的控制權限。所以出于安全考慮默認是禁止的。所以允許gdb控制其它進程最好的方法就是用系統信任的證書對它進行簽名。
創建證書
- command+空格鍵,輸入鑰匙串訪問。
- 菜單上點擊鑰匙串訪問->證書助理->創見證書
- 填寫如下信息
名稱:gdb_codesign
身份類型:自簽名根證書
證書類型:代碼簽名 - 勾選:讓我覆蓋這些默認設置
之后一直next,直到出現“指定證書位置”,選擇系統,然后完成。
之后在左側邊欄上邊選擇“系統”,下邊選擇“我的證書”可以看到創建的證書,然后雙擊。展開“信任”這一項,選擇 代碼簽名
“始終信任”。
關掉窗口,此時需要驗證密碼。
重啟下系統,然后再執行:codesign -s gdb-cert $(which gdb)
使用
先編譯一段代碼
go build -gcflags "-N -l" test.go //關閉內聯優化,便于輸出調試信息
載入go運行時環境
(gdb) source /usr/local/go/src/pkg/runtime/runtime-gdb.py