go チームが GDB をうまくサポートしないことは承知しています。しかし、時々うまくいくようですので、あきらめる前に、このプログラムで動作するかどうかを確認したいと思います.
Mac os x mavericks でプログラムをデバッグするためにそれを使用しようとしましたが、残念ながら実行時にプログラムを検査できませんでした。私は mac os x mavericks 10.9.4 を使用しています。go バージョンは go1.2.2 darwin/amd64 です。
gdb my_binary
バイナリで実行してから実行しようとすると、次のようになります。
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from hydra...
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/crypto/x509/_obj/root_darwin.cgo2.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/net/_obj/cgo_unix.cgo2.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_amd64.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_darwin_amd64.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_setenv.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_util.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/m9/3tx5tfkx02z9jkwdz0lkg85cj4gbmq/T/go-build297950324/github.com/alecthomas/gozmq/_obj/zmq.cgo2.o': can't open to read symbols: No such file or directory.
warning: `/var/folders/m9/3tx5tfkx02z9jkwdz0lkg85cj4gbmq/T/go-build297950324/github.com/alecthomas/gozmq/_obj/zmq_3_x.cgo2.o': can't open to read symbols: No such file or directory.
(no debugging symbols found)...done.
注目したいのは最後の行です。
(no debugging symbols found)...done.
go プログラムを間違ってコンパイルしましたか? これを機能させる可能性のあるフラグはありますか?
私はやっただけgo build my_program
ですが、おそらくいくつかのフラグか何かがそれを機能させたのでしょうか?
非常に単純なプログラムで gdb を動作させることができましたが、このはるかに大きなプログラムでは失敗し、上記のエラーがスローされます。誰かがそれがなぜなのか知っていますか?多くのライブラリやパッケージなどを含む大規模なプログラムで動作させることができた人はいますか?
うまくいかないかもしれないことは理解していますが、コミュニティに質問して試してみたかったのです。
(別のデバッガーがある場合は、それも使用したいと思います)。
(cgdbでも同じ問題がありました)。
(変数の値、ブレークポイント、およびそのような基本機能を確認できる他のデバッガーの使用にもオープンです。おそらく、go-routines を探索することも素晴らしいでしょう。もちろん、Mac の場合)