ホームページ >バックエンド開発 >Golang >Linux で gdb を使用して go プログラムをデバッグする方法

Linux で gdb を使用して go プログラムをデバッグする方法

PHPz
PHPzオリジナル
2023-03-31 15:37:531645ブラウズ

golang の開発プロセスでは、問題をデバッグする必要がある状況によく遭遇します。現時点では、デバッグを支援するツールが必要です。 golang で最も一般的に使用されるデバッグ ツールは gdb です。この記事では、Linux オペレーティング システムで gdb をインストールして構成する方法を紹介します。

1. gdb とは何ですか?

gdb は、複数のプラットフォームで使用できるデバッグ ツールです。 C、C、Fortran、アセンブリなどの複数のプログラミング言語をサポートしています。プログラムのシングルステップ デバッグに加えて、プログラム メモリの表示、ブレークポイント デバッグ、条件付きデバッグなどの複数のデバッグ方法もサポートしています。

2. gdb のインストール

Linux オペレーティング システムでは、通常、gdb が付属しています。コマンド ラインで次のコマンドを入力して、gdb がインストールされているかどうかを確認できます:

$ gdb -v

gdb がインストールされている場合、コマンド ラインは次のように gdb のバージョン情報を出力します:

GNU gdb (GDB) 7.11.1
...

gdb がインストールされていない場合は、パッケージ マネージャーを使用してインストールできます。 Ubuntu を例に挙げると、ターミナルに次のコマンドを入力して gdb をインストールできます:

sudo apt-get install gdb

上記の操作後、システムで gdb を使用できるようになります。

3. gdb の設定

gdb はデフォルトでデバッグ情報を提供しますが、この情報は十分ではない場合があります。したがって、golang プログラムをコンパイルするときにデバッグ情報を追加する必要があります。コンパイル時に「-gcflags」オプションを使用すると、コンパイラのデバッグ情報のレベルを上げることができます。例:

go build -o hello-world -gcflags=all="-N -l" hello-world.go

ここで、「-N」オプションはプログラムをより適切にトレースできるように最適化を無効にすることを意味し、「-l」オプションはコンパイラに行番号情報を生成するように指示することを意味します。

4. gdb の使用

golang プログラムをデバッグするときは、-go-delve プラグインを使用する必要があります。このプラグインは、GDB と LLDB の 2 つのバックエンドを提供します。 GDB は Go 言語のデフォルトのバックエンドです。この記事では、GDB を使用してプログラムをデバッグする方法を紹介します。

1. デバッグをオンにする

まず、gdb を起動し、デバッグが必要なプログラムをロードします:

$ gdb ./hello-world

次に、GDB コマンドで「run」コマンドを入力します。プログラムを開始する行:

(gdb) run

2. ブレークポイントの設定

ブレークポイントを設定する行に「break」と入力します。

たとえば、「main」関数の 5 行目にブレークポイントを設定します:

(gdb) break main.go:5

3. シングルステップ

プログラムをデバッグする一般的な方法は、シングルステップです。 -ステップの実装。 GDB では、「next」コマンドを使用して次のステートメントを実行し、「step」コマンドを使用してサブ関数の最初のステートメントを入力できます。

たとえば、「main」関数でのシングルステップ実行:

(gdb) next

Enter キーを押して、複数の「next」コマンドを連続して実行します。

4. 変数の値を確認する

GDB では、「print」コマンドを使用して変数の値を確認できます。

たとえば、「main」関数の「i」変数の値を表示します:

(gdb) print i

5. デバッグの終了

デバッグが完了したら、次のように入力できます。 「quit」で GDB を終了します:

(gdb) quit

概要

この記事では、Linux オペレーティング システムで gdb をインストールして構成する方法、および gdb を使用して golang プログラムをデバッグする方法を紹介します。実際の開発において、gdb は問題をより迅速に発見して解決するのに役立つ非常に重要なデバッグ ツールです。

以上がLinux で gdb を使用して go プログラムをデバッグする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。