天天看點

mac OS X 10.9.2 gdb codesign

文章轉自:http://blog.csdn.net/sinkary/article/details/24107993

版權歸原作者。

準備在mac下用gdb調試,出現:

[plain] view plain copy
Starting program: /x/y/foo  
Unable to find Mach task port for process-id : (os/kern) failure ().  
 (please check gdb is codesigned - see taskgated())  
           

原因是出于對程序安全的考慮,gdb不能随意通路其它程序,需要給它代碼簽名,隻要将gdb加入一個代碼簽名證書即可。

首先要建立代碼簽名證書。

打開應用:Launchpad -> 其他 -> 鑰匙串通路

點選 “鑰匙串通路”->“證書助理”->“建立證書”

名稱填 gdb-cert,證書類型選代碼簽名,身份類型用預設的自簽名根證書,勾選“讓我覆寫這些預設值”,一路繼續,直到遇到“指定用于該證書的位置”,選擇系統,完成。

然後,在“系統”鑰匙串中找到建立的gdb-cert,輕按兩下打開屬性,在信任中選擇“總是信任”。

重新開機電腦。

然後給gdb簽名:

$ which gdb 
$ codesign -s gdb-cert /usr/local/bin/gdb
           

就可以了。

參考:

https://sourceware.org/gdb/wiki/BuildingOnDarwin

http://gcc.gnu.org/onlinedocs/gnat_ugn_unw/Codesigning-the-Debugger.html

繼續閱讀