gdb調試器調試失敗?
題主今天在mac上裝了一個gdb調試器,按照教程裝完後,使用調試命令時出現了下面的錯誤:During startup program terminated with signal SIG113, Real-time event 113。之前用@河利的方法解決了,但前幾天蘋果又出了一個更新,更新後就又出現了上面所說的問題。最近在看csapp,用不了gdb很討厭。
如果是mac os10.12.2的話,正確做法是先用brew升級gdb 然後在.gdbinit文件中添加set startup-with-shell off
設置
set startup-with-shell off
即可(方便起見可以寫到 .gdbinit 里)。
似乎是升級Mac OS sierra後都會這樣。
目前沒有解決辦法。
@河利這個方法我也試過了,不行,gdb出現如下報錯:warning: unhandled dyld version (15)
[Inferior 1 (process 660) exited normally]
用戶文件夾下沒有.gdbinit文件,直接運行下面的命令就可以了,親測可以,在創建證書之後。
終端運行 echo "set startup-with-shell off" &>&> ~/.gdbinit
在Terminal 運行:csrutil status
System Integrity Protection status: enable.是enable的話,那就關閉SIP試試。1,重啟OSX系統,然後按住Command+R2,出現界面之後,選擇Utilities menu中Terminal3,在Terminal中輸入csrutil disable關閉SIP(csrutil enable打開SIP)4,重啟reboot OSX 參考鏈接:https://developer.apple.com/library/content/documentation/Security/Conceptual/System_Integrity_Protection_Guide/ConfiguringSystemIntegrityProtection/ConfiguringSystemIntegrityProtection.html問題:剛剛升到10.12.3,發現 gdb 不能用了(其實更新了那個 Xcode 之後 ctags 啥的也都用不了了)。就是說我這個回答是針對 Sierra 10.12.3 的,其他版本請參照其他回答。
解決方法:升級 gdb 到最新的版本 7.12.1 ,這個版本的 gdb 專門對 10.12.3 系統加了一票子補丁。自己去看這個視頻教程吧,需要翻牆:http://www.youtube.com/watch?v=AoDSUadbl-M
過程大概是這樣的(其實記不太清了,建議去看那個視頻):
1.先更新 gdb :
brew update
brew unlink gdb
brew install gdb
然後你會發現這個新系統的 brew 命令居然不能用 root 許可權執行……
如果他說有一堆目錄許可權不夠,那就用sudo chown 把那些目錄的許可權全都改成 User 許可權,不會用 chown 命令的自己去谷歌。
如果裝成了最新版本的 gdb ,那麼已經完成一大半工作了。
2.另外一小半工作就是和以前一樣,創建證書,過程自己去谷歌。
證書創建完之後,和以前一樣,更新簽名(我的那個證書名叫 gdb-cert):
sudo -fs gdb-cert $(which gdb)
3.最後重啟系統。
推薦閱讀:
※OS X 文本編輯等應用為何會自動轉換引號,如何解決?
※Mac OS X 下有哪些輕量級的作圖工具?
※為什麼蘋果在 OS X Yosemite 中把系統字體改為 Helvetica Neue?
※Mac OS X 如何才能用快捷鍵鎖屏?
※為什麼 Mac OS X 對內存的需求遠遠多於 Windows ?