Mac下GDB提示簽名錯誤 (please check gdb is codesigned – see taskgated(8))

轉載自阿凡樹的博客html

本文連接地址: Mac下GDB提示簽名錯誤 (please check gdb is codesigned – see taskgated(8))linux

好不容易用brew把gdb安裝上去了,結果發現仍是不能調試,還報了這個錯誤。–>(please check gdb is codesigned – see taskgated(8))
  網上查了下:Darwin kernel出於安全考慮,在沒有特殊受權的狀況下不容許gdb調試任何程序,由於能夠調試就掌握了進程的控制權。不過若是是root用戶就沒有這個問題,不過誰願意用root來調試程序呢。
解決辦法:
  一個經常使用的解決方法就是給gdb授予系統徹底信任的代碼簽名權利,以對其餘進程。安全

  首先,須要建立一個系統代碼簽名信任證書:app

  啓動「鑰匙串訪問」應用(/Applications/Utilities/Keychain Access.app)
1.打開菜單:鑰匙串訪問-》證書助理-》建立證書…
2.輸入證書名稱,如:gdb-cert;
3.選擇身份類型:自簽名根證書 (Identity Type to Self Signed Root)
4.選擇證書類型:代碼簽名 (Certificate Type to Code Signing)
5.勾選:讓我覆蓋這些默認簽名 (select the Let me override defaults)
6.一路繼續,到選擇時間的時候,把時間選擇的長一些,最大是20年,7300。
7.一路繼續,直到選擇存放證書地址,選擇:系統
8.這樣證書就建立好了,還要設置證書自定義信任
9.右鍵剛纔建立的 gdb-cert 證書,選擇「顯示簡介」 (Get Info)
10.點擊「信任」,會顯示能夠自定義的信任選項
11.「代碼簽名」選擇「老是信任」 (Code Signing to Always Trust)
12其次,將證書授予gdb,執行命令ide

1spa

codesign -s gdb-cert `which gdb`unix

  好了,以上就給gdb授予了系統信任的代碼簽名證書,能夠正常使用gdb了。
  要讓剛剛添加的證書生效須要重啓taskgated服務或者重啓系統調試

1code

sudo killall taskgatedhtm

相關文章
相關標籤/搜索