タイトルはそれをかなり要約しています。私は Go を試していますが、ブレークポイントを設定したり、インタラクティブな環境で好きなだけステップイン/オーバー/アウトしたりできないのが本当に恋しいです。gdb を使用して Go をデバッグできることはわかっていますが、gdb にプラグインしてブレークポイントを設定できる IDE を使用する場合と比べて、これは非常に面倒です。
検索してみましたが、構文の強調表示はあるがデバッグ機能がないプラグインまたは小さな IDE しか見つかりませんでした。
更新: 個人的には、GDB は動作しますが、Go で使用するのは好きではありません。良い代替案については、他の回答のいくつかを確認してください。
はい、もちろん :)
Goにはデバッガー(GDB)があります
使い方の公式チュートリアルはこちら。
「グラフィカルなデバッグ」(つまり、エディターでブレークポイントを設定する) が必要な場合は、一部の IDE でそれを実行できます (バックグラウンドで GDB を使用)。
具体的には、Eclipse、LiteIDE、Zeus のすべてで、ブレークポイントを設定し、コーディング環境(ソース)からデバッグできます。これは、Zeus でそれを行う方法に関するビデオです。
go の GDB サポートには、go チームによって修正されない多くの問題があります。
詳細については、Rob Pike による投稿を参照してください。
サポートされているプラットフォームで基本的な gdb 機能 (スタック トレース、値の出力) が機能し続けるように努めますが、デバッガーを使用して Go プログラムの完全な環境を理解する機能は機能しない可能性が高く、gdb サポートの改善はチームの優先事項ではありません。 .
彼らは他のデバッグ オプションを探していますが、今のところ具体的な計画はありません。ドキュメントは古く、runtime-gdb.py
go 1.2 に付属するスクリプトは、python3 サポートでコンパイルされた GDB (たとえば、現在の Ubuntu) では機能しません。
アップデート:
私はそれをチェックアウトし、バージョン: 2016.1.3、ビルド: 145.1617.8、リリース: 2016 年 6 月 5 日が Delve で動作することを喜んで報告します! https://www.jetbrains.com/idea/download/からダウンロードできます。また、こちらの Delve のインストール手順に従ってください: https://github.com/derekparker/delve/tree/master/Documentation/installation
それは少し薄片です。OSX のログイン プロンプトが表示された直後に、インタラクティブなデバッグが開始されました。ときどき、単純な .go プログラムをデバッグして起動しなければならないことがあります。しかし、それは機能し、私が見た中で最高の Go の対話型デバッグ エクスペリエンスです。
元の投稿:
golangインタラクティブデバッガは存在しますか? はい。
使用する価値のあるgolangインタラクティブデバッガーはありますか? いいえ。
Mac で GDB を構成するのは面倒ですが、実行可能です。
ただし、使い始めるとすぐに、インストールに時間を無駄にしていたことに気付くでしょう。
IntelliJ を使用するように構成することもできます。
IntelliJ、LiteIDE、CGDB などが提供しているように見える唯一の価値は、Go の GDB デバッグ サポートが非常に貧弱であることをより迅速に確認できることです。
これを使用していくつかの Go コードをステップ実行できますが、非常に単純な変数値以外の値を出力しようとすると、適切なデバッガーが必要であることに時間を浪費することになります。
CGDB を使用して map[string]string データ構造の値を出力しようとするとどうなるかの例を次に示します。
(gdb) print params
$1 = (github.com/go-martini/martini.Params) 0x15582 <runtime.reentersyscall+450>
...これはまったく役に立ちません。
次に、これを試してください:
(gdb) print params["UserID"]
...そして、「バスエラー」が発生します。
Delve ( https://github.com/derekparker/delve ) は Go で記述されているため有望に見えますが、IDE ではなくコンソールを使用して操作します。
Go での対話型デバッグをサポートする適切な仕事をした IntelliJ (または他の IDE) のエンタープライズ バージョンに喜んでお金を払います。
今のところ、fmt.Printf("%v", variable)
それが得られるのと同じくらい良いです。
私は、GDB の小さな curses ラッパーである CGDB を喜んで使用しています。
編集
GO デバッガーは、IntelliJ または PyCharm のシンプルなプラグインになりました。他に何もインストールする必要はありません。プラグイン設定で Go プラグインを探してください。
元の回答(2015年11月)
2015 年 11 月末現在の最新情報をお探しの方:
掘り下げる
https://github.com/derekparker/delve
ビルド/セットアップの手順に従います。
https://github.com/derekparker/delve/wiki/Building
最新の IntelliJ (15) または PyCharm (5) を入手する
https://www.jetbrains.com/idea/download/
選択した IDE で go-lang-plugin を取得します。
Pycharm -> Preference -> plugins -> search for go
current version is Version: 0.10.749
IntelliJ -> Preference -> plugins -> search for go
current version is Version: 0.10.749
実行するパッケージまたはファイルを定義します。
セットアップが完了すると、Play アイコンと Debug アイコンがアクティブになり、通常どおりブレークポイントやウォッチなどを設定できます。
乾杯
オプション 1 - GDB https://golang.org/doc/gdb
go プラグインを使用したVisual Studio Code (引き続き delve を使用)。
私は個人的にオプション 3 を使用します。そのためには、 delve をインストールする必要があります。
このビデオでは、デバッグの動作を示しています: https://youtu.be/uBjoTxosSys?t=16m11s (ビデオ全体は非常に興味深いものです)。
IDE DEBUG ON GO は可能です (再び)、実際に動作します!
Delveは Mac OS X でうまく動作し、IntelliJ IDEA Go Lang プラグインでサポートされています。
Mac OSX、IntelliJ Idea 14、Go 1.5.1、Delve 0.5 でテストしました
自己署名証明書の作成、システムリングへの追加などの通常のループを実行する必要がありました (Mac OS X でデバッガーを実行するために必要です)。最後に、IntelliJ 内に GO プロジェクトを設定し、通常の IDE + デバッガー機能 (ブレークポイントの設定、変数の検査、シングル ステップ) を取り戻すことで報われました。
これは、コードをデバッグするために値を出力するよりもはるかに優れています。