建議使用homebrew安裝棠耕,即在終端中鍵入
brew install gdb
安裝完成后,gdb應(yīng)該會(huì)位于/usr/local/bin/gdb
如果我使用gdb test對(duì)test進(jìn)行調(diào)試搔涝,然后在命令行中鍵入run, 則會(huì)報(bào)錯(cuò):
>run
Starting program: /Users/evian/Downloads/test/test
Unable to find Mach task port for process-id 358: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))
這是沒(méi)有證書(shū)的緣故。接下來(lái),我們需要使用證書(shū)對(duì)gdb進(jìn)行簽名:
1.打開(kāi)應(yīng)用程序>其他>鑰匙串訪問(wèn)
2.在菜單欄中選擇證書(shū)助理>創(chuàng)建證書(shū)
3.名稱隨便填(比如說(shuō)gdb_codesign), 身份類型為「自簽名根證書(shū)」破停,證書(shū)類型為「代碼簽名」蕉鸳,并勾選「讓我覆蓋這些默認(rèn)值」乎赴。
4.一路繼續(xù),直到讓我們指定用于該證書(shū)的位置潮尝,選擇「系統(tǒng)」榕吼。然后輸入密碼即可創(chuàng)建
5.接著,我們可以在「系統(tǒng)」鑰匙串的「我的證書(shū)」種類中找到這個(gè)證書(shū)
6.雙擊該證書(shū)打開(kāi)衍锚,然后展開(kāi)「信任」欄目友题,將「使用此證書(shū)時(shí)」選擇為「始終信任」,關(guān)閉時(shí)輸入密碼即可保存戴质。
7.新建一個(gè)叫做gdb-entitlement.xml的文件度宦,其內(nèi)容為
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.debugger</key>
<true/>
</dict>
</plist>
8.在終端鍵入
codesign --entitlements gdb-entitlement.xml -fs gdb_codesign /usr/local/bin/gdb
9.在簽名過(guò)后,我們終于可以使用gdb了告匠,但是戈抄,當(dāng)我們輸入run的時(shí)候,新的問(wèn)題出現(xiàn)了
>run
Starting program: /Users/evian/Downloads/test/test
[New Thread 0x1803 of process 1090]
[New Thread 0x1903 of process 1090]
# 退出后后专,執(zhí)行以下命令即可正常使用gdb了
echo "set startup-with-shell off" >> ~/.gdbinit