what gdb?
Gdb是一款代碼調(diào)試工具。Mac下依舊支持,但是由于MacOS系統(tǒng)本身以及版本不協(xié)調(diào)等原因使用過(guò)程會(huì)遇到各種各樣的問(wèn)題超燃。本文詳細(xì)記錄了從Gdb安裝,鑰匙串配置過(guò)程拘领。
安裝
方式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.
配置調(diào)試權(quán)限
運(yùn)行如下命令報(bào)錯(cuò)
(gdb) run
Starting program:
No executable file specified.
Use the "file" or "exec-file" command.
這是因?yàn)镈arwin內(nèi)核在你沒(méi)有特殊權(quán)限的情況下,不允許調(diào)試其他進(jìn)程。調(diào)試某個(gè)進(jìn)程届良,意味著對(duì)這個(gè)進(jìn)程有完全的控制權(quán)限笆凌。所以出于安全考慮默認(rèn)是禁止的。所以允許gdb控制其它進(jìn)程最好的方法就是用系統(tǒng)信任的證書(shū)對(duì)它進(jìn)行簽名士葫。
創(chuàng)建證書(shū)
- command+空格鍵乞而,輸入鑰匙串訪問(wèn)。
- 菜單上點(diǎn)擊鑰匙串訪問(wèn)->證書(shū)助理->創(chuàng)見(jiàn)證書(shū)
- 填寫(xiě)如下信息
名稱(chēng):gdb_codesign
身份類(lèi)型:自簽名根證書(shū)
證書(shū)類(lèi)型:代碼簽名 - 勾選:讓我覆蓋這些默認(rèn)設(shè)置
之后一直next慢显,直到出現(xiàn)“指定證書(shū)位置”爪模,選擇系統(tǒng),然后完成荚藻。
之后在左側(cè)邊欄上邊選擇“系統(tǒng)”屋灌,下邊選擇“我的證書(shū)”可以看到創(chuàng)建的證書(shū),然后雙擊应狱。展開(kāi)“信任”這一項(xiàng)共郭,選擇 代碼簽名
“始終信任”。
關(guān)掉窗口疾呻,此時(shí)需要驗(yàn)證密碼除嘹。
重啟下系統(tǒng),然后再執(zhí)行:codesign -s gdb-cert $(which gdb)
使用
先編譯一段代碼
go build -gcflags "-N -l" test.go //關(guān)閉內(nèi)聯(lián)優(yōu)化,便于輸出調(diào)試信息
載入go運(yùn)行時(shí)環(huán)境
(gdb) source /usr/local/go/src/pkg/runtime/runtime-gdb.py