如何在mac os中安裝gdb及為gdb進行程式碼簽署

來源:互聯網
上載者:User

標籤:des   http   io   ar   os   使用   sp   for   on   

1. 安裝gdb

GDB作為一個強大的c/c++調試工具,一直是程式猿們的良好伴侶,但轉到Mac os才發現竟然沒有預設安裝,所幸還有強大的homebrew工具:

brew install homebrew/dupes/gdb

然後就是漫長的等待+編譯安裝時間了,安裝完成後敲擊gdb能列印出版本資訊,說明已經正確安裝了:

如果現在就使用gdb進行程式調試的話會發現,根本行不通:

 

2. 產生認證

這是由於Mac os的安全機制阻止了我們的gdb對要調試的程式進行完全控制,對此我們要對gdb賦予合適的許可權,首先我們要在keychain access裡面添加相應的keychain (鑰匙串):

然後在下面的輸入框中輸入認證的名字及類型等:

指定有效期間:

一路"continue",知道出現為我們的認證選擇位置(Specify a Location for the Certificate)的時候注意:這裡選"system"(如果這裡無法選擇system,選login也是可以的,只不過再產生相應認證後需要手動匯出認證,然後再手工把gdb-cert匯入到System中去):

好了,“create”之後我們的認證就產生成功啦d

接下來,我們選擇"always trust"我們剛產生的認證,這樣就不用每次在運行gdb的時候手工輸入管理員密碼了:

 

 3. 對gdb進行認證簽名

完成上述步驟以後就可以退出keychain access了,但僅僅這樣還是不夠的,要對gdb進行簽名,我們還需要殺死一個特殊的進程:

 

開啟activity monitor, 在cpu一欄的搜尋方塊中輸入‘taskgated’,然後雙擊進程所在行,點選‘quit’,這是你會發現taskgated進程消失了(好無辜的一個進程:( )。現在就可以對gdb進行簽名了:

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

其中‘/usr/local/bin/gdb’是gdb在我的電腦中所在的位置(其實它是‘/usr/local/Cellar/gdb/7.8.1/bin/gdb‘的一個軟連結),此命令正常執行無任何輸出。

註:如果某天想要取消對gdb的認證簽名,可以使用‘codesign --remove-signature /usr/local/bin/gdb’來完成,前提是你的gdb-cert簽名還在哦。

好了現在可以使用gdb進行調試了麼,且慢!

把taskgated進程再殺死一次先(是的,頑強的taskgated在後台剛剛重新啟動又要被我們給殺死了:( )

至此,才算是功德圓滿,趕緊用gdb試著運行下我們的程式吧:

4. 參考連結:

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

http://ntraft.com/installing-gdb-on-os-x-mavericks/

如何在mac os中安裝gdb及為gdb進行程式碼簽署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.