若是你在MacOS上使用GDB工具載入Golang程序時沒法載入,這篇文章能夠解決。本文不具體介紹調試的方法,網上的文章太多了就不贅述了。
cgdb使用的是gdb的內核,方法和原理試用本文。git
最近接觸Go語言,看了慕課網的這篇文章,裏面介紹的Go函數,有一種JavaScript的風格,把我弄迷糊了。記得剛接觸JavaScript的時候,什麼匿名函數自執行,弄的是暈頭轉性。決定使用調試器對這篇文章中的示例代碼進行調試。github
找了不少文章介紹GDB調試Golang程序的文章都不能載入。golang
Type "apropos word" to search for commands related to "word"... Reading symbols from gen...(no debugging symbols found)...done. Loading Go Runtime support.
應該是這些文章的做者都用的Linux操做系統吧,在我這裏不起做用。Go語言的官網文檔也沒有提到這個問題。macos
經過查閱stackoverflow,才找到解決的方法。函數
go build
的時候添加-ldflags=-compressdwarf=false
參數。或,添加如下環境變量export GOFLAGS="-ldflags=-compressdwarf=false"
。
圖片中的12行源代碼版權歸慕課網全部,僅供效果展現,無心侵犯。工具
若是你發生了上面的問題,頗有可能可出現了這個問題ui
During startup program terminated with signal SIGTRAP, Trace/breakpoint trap.
解決方法降級gdb到8.01,若是你使用brew安裝的,能夠參考 https://stackoverflow.com/questions/49001329/gdb-doesnt-work-on-macos-high-sierra-10-13-3google
brew unlink gdb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb
brew pin gdb
防止gdb更新