2017-02-18 118 views
0

這個問題已經知道,gdb不再適用於OS X Sierra。gdb os x sierra 10.12.3不能正常工作

這真的很煩人,因爲我已經研究瞭解決方案,並且有一些解決方案,但他們顯然不再工作了。我試圖使用.gdbinit文件解決方案和禁用csrutil解決方案,兩者都不起作用。

Sooo我的問題是:有誰知道如何解決它在10.12.3?

非常感謝!

+0

你有沒有嘗試編譯最新[GDB](https://www.gnu.org/software/gdb/)7.12.1從源代碼? –

+0

又見http://sourceware-org.1504.n7.nabble.com/gdb-on-macOS-10-12-quot-Sierra-quot-td415708.html –

+0

非常感謝你,你給我的想法簡單更新gdb大聲笑。這有幫助,然後我想出了自己! :)我會在未來的文章中爲男士寫一個答案。 –

回答

1

所以感謝巴西萊Starynkevitch,誰只是給了我的想法,更新GDB

SOLUTION:

您只需更新 GDB最新的版本(這是目前7.12.1 )。假設你已經安裝家釀:

這就是我所做的:

brew update 
brew remove gdb 
brew install gdb 

現在已經更新到最新版本。

現在再次使用您以前使用過的證書對gdb進行密碼校驗。

sudo killall taskgated 
codesign -fs gdb-certi /usr/local/bin/gdb 
launchctl load /System/Library/LaunchDaemons/com.apple.taskgated.plist 

最後一步是仍然使用變通方法來創建.gdbinit中:

nano ~/.gdbinit 

- >set startup-with-shell off

調試現在對我的作品:)(OS X塞拉利昂10.12。 3 - gdb 7.12.1)。

UPDATE:

顯然,這將解決某些問題,但不是全部問題的本身。它仍然會導致錯誤。老實說,我的解決方案:當你可以:切換到LLDB和另一個IDE (Netbeans不支持LLDB)。或者使用Linux。我目前在我的MacBook Pro上使用Ubuntu。

+1

不適合我。仍然破碎 –

-1

我發現gdb 7.12.1也不適用於我。我認爲它不包括2016年11月9日提交給gdb的重要提交82b19a4d2f9c9e8d56f。 但是,我能夠讓gdb 8.0開發分支工作。

通過例如下載

git clone --depth 1 --branch gdb-8.0-branch git://sourceware.org/git/binutils-gdb.git 

然後進入驗證目錄

cd binutils-gdb 

我的MacPorts所以(一)要鏈接到MacPorts的庫和(b)要避免把東西在/ usr /本地所以配置爲

./configure prefix=$HOME LDFLAGS="-L/opt/local/lib" CPPFLAGS="-I/opt/local/include" 


make -j8 

make install 

=>將gdb可執行文件放入〜/ bin; (靜態)庫到〜/ lib;文檔到〜/份額

然後按照上述André的前端做代碼簽名;雖然它現在將是 codesign -fs gdb-certi〜/ bin/gdb

0

無GDB 7.11或7.12.1將無法在Sierra 10.12.4上運行簡而言之,這是因爲Apple安全性升級。當某個新版本出現時,我們需要等待重新啓用。

易WA是使用LLDB作爲調試器現在。樣本說明here

另一個LLDB指令here

3

貌似還有沒有一個解決方案。我不認爲「使用LLDB代替GDB」是最終的解決方案。所以我繼續構建了一個非常基本的Docker容器,它包含了非常基礎的東西(g ++和gdb)。

這裏是Docker Hub container,而在Dockerfile是這個Github repo

該解決方案至少可以讓您通過幾個簡單的命令使用GDB你的Mac上。並且,由於您正在編碼的文件夾已安裝,只要您點擊保存,所有更改都會自動顯示。

希望這可以幫助別人。