Go

読書メモ:Go ならわかるシステムプログラミング〜 delve を Emacs で動かすまで

More than 1 year has passed since last update.


環境


  • macOS High Sierra 10.13.1

  • Golang 1.9.2

  • Emacs 25.3 (Homebrew)


手順

ソースコードをチェックアウトして make を使ってコンパイル&インストール。

$ ghq get https://github.com/derekparker/delve.git

$ cd ~/src/github.com/derekparker/delve
$ make test
$ make install

Emacs で M-x package-install RET go-dlv RET して benma/go-dlv をインストール。設定は割愛。((require 'go-dlv) 的な事をするだけで良いはず)

go のファイルを開いて M-x dlv-current-func RET してデバッガが起動する事を確認。

image.png


メモ:dyld のパス解決方法がわからない

make test を実行した際に dyld 絡みのエラーが発生した。

Error compiling ../../_fixtures/issue877.go: signal: abort trap

dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /usr/local/lib/libJPEG.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO

Homebrew の jpeg と libpng パッケージによってインストールされた dylib が優先された結果、存在しないシンボルを参照してしまうという事象が発生した模様。関連パッケージを一通り削除する事で対処したが、本来はサーチパスを調整する事で解決する問題な気がしている。

※ この問題は以下で再現可能。

$ brew install jpeg

$ cd ~/src/github.com/derekparker/delve
$ make test


参考