2017-08-09 13 views
4

最初の"Hello World"プログラムをGo言語で作成し、それをビルドしてバイナリファイルを作成しました。バイナリを調べると、私はこのバイナリファイル内のpython scriptという参照を参照しました。Go言語のruntime-gdb.pyの役割は何ですか?

このスクリプトの記述は、それがコンパイルされたバイナリで.debug_gdb_scripts 部を検出した場合、このスクリプトは、GDBによってロードさ

を読み出します。 [68] Lリンカーは、実行時パッケージのパスに基づいて、このファイルへ パスでこれを放出します。

私は明らかにこの意味を理解していません。だから、runtime-gdb.pyとは何ですか?Go言語にはどのような関係がありますか?

答えて

6

gdbデバッガを使用してプログラムをデバッグする場合、そのスクリプトを読み込むと、マップやスライス内の値を(不透明なポインタではなく)見ることができるなど、Goプログラムの機能が向上します。ネイティブスレッドではなくゴルーチンのリストと検査が可能です。 gdbは拡張機能としてPythonを使用します。

+0

デバッグモードでバイナリを構築するためのフラグがありますか?私はデバッグに関連するオプションを指定することを覚えていません。私は、このスクリプトの組み込みをオプションにすることができるかどうか尋ねることを意味します。 – Beginner

+1

@Beginner:それはバイナリに含まれていない、それが唯一のDWARF情報に名前で参照されます。あなたは、必要に応じて '-w'リンクフラグとDWARF生成を無効にすることができますが、そうする理由は、一般的にありません。 – JimB

+0

@JimB - 入力いただきありがとうございます。 – Beginner

2

gdbはPythonでスクリプト化できます。これはgolangをサポートするためのスクリプトです。

関連する問題