作為壹個強大的c/c++調試工具,壹直是程的好伴侶,但是當我切換到Mac os時,我發現沒有默認安裝。幸運的是,還有壹個強大的自制工具:
brew安裝自制軟件/dupes/gdb
然後就是漫長的等待+編譯安裝時間。安裝完成後,您可以通過點擊gdb打印出版本信息,表明它已經正確安裝:
截屏2014-11-24 01 . 04 . 15
如果妳現在用gdb進行程序調試,妳會發現根本不行:
截屏2014-11-24 01 . 08 . 24
2.生成證書
這是因為Mac os的安全機制使得我們的gdb無法完全控制要調試的程序,所以要給gdb適當的權限。首先,我們應該在“鑰匙串訪問”中添加相應的鑰匙串:
create-cert-menu1
然後在下面的輸入框中輸入證書的名稱和類型:
create-cert-1
指定有效期:
創建-證書-2
壹路“繼續”。當妳知道出現為證書指定位置時,請註意:在此選擇“系統”(如果此處無法選擇系統,選擇登錄也可以,但需要在生成相應證書後手動導出證書,然後手動將gdb-cert導入系統):
創建證書-3
好了,“創建”之後,我們的證書就生成成功了,d。
創建證書-4
接下來,我們選擇“總是信任”我們剛剛生成的證書,這樣我們就不必在每次運行gdb時手動輸入管理員密碼:
證書-獲取信息證書-始終信任
3.簽署廣發銀行證書
完成上述步驟後,您可以退出“鑰匙串訪問”,但僅此還不夠。要簽署gdb,我們需要殺死壹個特殊的進程:
截屏2014-11-24 01 . 33 . 49
打開活動監視器,在“cpu”列的搜索框中輸入“taskgated ”,然後雙擊進程所在的行並單擊“退出”。妳會發現任務門控進程已經消失了(多麽無辜的進程:())。現在您可以簽署gdb:
code sign-s gdb-cert/usr/local/bin/gdb
其中'/usr/local/bin/gdb '是我電腦中gdb的位置(實際上是'/usr/local/cellular/gdb/7 . 8 . 1/bin/gdb ')的壹個軟鏈接),這個命令正常執行,沒有任何輸出。
註意:如果有壹天妳想取消廣發的證書簽名,可以用'碼簽-移除-簽名/usr/local/bin/GDB '來完成,前提是妳的gdb-cert簽名還在。
好了,現在可以用gdb調試了嗎?等壹下!
先再次殺死taskgated進程(沒錯,頑強的taskgated剛剛在後臺重啟,又要被我們殺死了: ()
在這壹點上,是完全的功德。嘗試使用gdb快速運行我們的程序: