GoLand 2026.1 Help

デバッガーで実行中の Go プロセスにアタッチする

GoLand では、 ローカルマシンリモートマシン 、または Docker コンテナーで実行中の Go プロセスにデバッガーを接続できます。

ローカルマシンのプロセスにアタッチする

コマンドラインから起動したアプリケーションをデバッグできます。 この場合、アプリケーションは IDE の外部で実行されますが、同じローカルマシン上で実行されます。 アプリケーションをデバッグするには、IDE でプロジェクトを開き、実行中のプロセスにデバッガーをアタッチする必要があります。

例として、 github.com にある次の Go コード(英語)を使用できます。

ステップ 1。 gops パッケージをインストールする

  • ターミナル ツールウィンドウ(表示 | ツールウィンドウ | ターミナル )を開き、次のコマンドを実行します。

    go install github.com/google/gops@latest
  • 実行|プロセスにアタッチCtrl+Alt+F5 )をクリックします。 通知ウィンドウで、 「go get gops」を呼び出す リンクをクリックします。

    gops パッケージをインストールする

ステップ 1. アプリケーションをビルドして実行する

  1. 表示 | ツールウィンドウ | ターミナル に移動して ターミナル ツールウィンドウを開き、次のコマンドを実行します。

    go build -gcflags="all=-N -l" -o myApp.exe

    このコマンドは、 myApp.exe 実行可能ファイルをコンパイルし、コンパイラーの最適化とインライン展開を無効にします。

  2. コンパイルされた実行可能ファイルを実行します。

    .\myApp.exe
    gcflags フラグを使ってアプリケーションをビルドする

ステップ 2. 実行中のプロセスにアタッチしてデバッグする

  1. ブレークポイントを設定するコード行の横にあるガターをクリックします。 提供されている例(英語)では、行 23 (message := fmt.Sprintf("Hello %s!", r.UserAgent())) にブレークポイントを配置します。 ブレークポイント のブレークポイントについて続きを読む。

  2. 実行|プロセスにアタッチ をクリックするか、ショートカット Ctrl+Alt+F5 を使用します。

  3. デバッガーで接続する ウィンドウでアプリケーションプロセスを選択し、 Enter を押します。

  4. アプリケーション内のブレークポイントに関連付けられたイベントをトリガーします。 提供されているコード例を使用する場合は、ブラウザーで http://localhost:8080/ リンクを開いてください。

リモートマシン上のプロセスにアタッチする

リモートコンピューターに接続し、そのコンピューターで実行されている Go プロセスにデバッガーをアタッチできます。 リモートデバッガー (Delve) は、リモートコンピューターで実行されている必要があります。

Delve をインストールするには、次のコマンドを使用します。

go install github.com/go-delve/delve/cmd/dlv@latest

ステップ 1。 リモートコンピューターでアプリケーションを構築する

  • ターミナル ツールウィンドウ(表示 | ツールウィンドウ | ターミナル )を開き、次のコマンドを実行します。

    go build -gcflags="all=-N -l" -o myApp.exe

    このコマンドは、 myApp.exe 実行可能ファイルをコンパイルし、コンパイラーの最適化とインライン展開を無効にします。

ステップ 1. リモートマシンで Delve を実行する

  • ホストマシンでデバッガーを起動するには、2 つのオプションがあります。

    • デバッガーがプロセスを実行します。 ファイアウォールを使用する場合は、構成で使用されているポート(たとえば、 2345 )を公開します。 使用されていない任意のポート番号を使用できます。 myApp は、 ステップ 1 で構築された実行可能ファイルの名前です。

      dlv --listen=:2345 --headless=true --api-version=2 exec ./myApp

      バイナリに引数をそのまま渡す必要がある場合は、前のコマンドに二重ダッシュ記号(-- )を追加してから、必要なオプション(-- --config=/path/to/config/file など)を追加します。

    • プロセスを実行すると、デバッガーは実行中のプロセスに接続します。 <PID> は、アプリケーションのプロセス識別子です。 プロセスにアタッチコマンドを使用して、プロセス ID を取得できます。

      dlv --listen=:2345 --headless=true --api-version=2 attach <PID>
    ホストマシンで Delve を実行する

ステップ 2. ローカルコンピューターでデバッグプロセスを開始する

  1. アプリケーションのコードを開き、ブレークポイントを配置します。 提供されているコード例(英語)では、行 23 (message := fmt.Sprintf("Hello %s!", r.UserAgent())) にブレークポイントを設定します。 ブレークポイント のブレークポイントについて続きを読む。

  2. 編集 | 実行構成 をクリックしてください。 または、ツールバーの実行 / デバッグ構成のリストをクリックして、 実行構成の編集 を選択します。

  3. 実行 / デバッグ構成 ダイアログで、 追加 ボタン(追加ボタン )をクリックし、 Go リモート を選択します。

  4. ホスト フィールドに、ホスト IP アドレス (たとえば、 localhost または 192.168.1.33) を入力します。

  5. ポート フィールドに、 ステップ 2 で構成したデバッガーポート(たとえば、 2345 )を入力します。

  6. デバッグ をクリックしてください。

  7. アプリケーションのブレークポイントでイベントをトリガーします。 提供されているコード例(英語)を使用した場合は、ブラウザーで http://<host_address>:8080/ リンクを開きます。

    次のビデオでは、IDE のインスタンスが 2 つあります。ダークテーマの IDE はローカルコンピューター、ライトテーマの IDE はリモートコンピューターです。

Docker コンテナー内のプロセスにアタッチする

Docker コンテナー内で実行される Go プロセスにデバッガーをアタッチできます。 Docker の詳細については、 Docker(ドッカー) を参照してください。

例として、 この Go アプリケーション(英語)には 次の Dockerfile (英語) を使用できます。

ステップ 1。 Dockerfile 構成を作成する

  1. 編集 | 実行構成 をクリックしてください。 または、ツールバーの実行 / デバッグ構成のリストをクリックして、 実行構成の編集 を選択します。

  2. 実行 / デバッグ構成 ダイアログで、 追加 ボタン(追加ボタン )をクリックし、 Docker | Dockerfile を選択します。

  3. Dockerfile フィールドで、 閲覧 アイコン(閲覧アイコン )をクリックし、ファイルブラウザーで Dockerfile に移動します。 このセクションの例を使用する場合は、 この Dockerfile(英語) に移動します。

  4. コンテナー名 」フィールドに、コンテナー名(たとえば、 debugging-tutorial )を入力します。

  5. 実行 / デバッグ構成 ダイアログで、 変更 をクリックし、 バインドポート実行オプション​​ を選択します。

    バインドポート
  6. バインドポート フィールドで、 閲覧 (閲覧アイコン) をクリックします。

  7. ポートバインディング ダイアログで、 追加 ボタン (追加ボタン) をクリックします。 ホストポート 列に、 8080 と入力します。 コンテナーポート 列をクリックし、 8080 と入力します。 さらに、ポート 40000 に同じバインドを作成します。

    バインドポート
  8. 実行オプション​​ フィールドで、Docker のコマンドラインオプションを指定します。 Dockerfile で提供されている例では、 セキュリティプロファイル(英語)を無効にして、 SYS_PTRACE Linux 機能(英語)を追加します。

    --security-opt="apparmor=unconfined" --cap-add=SYS_PTRACE
  9. 実行 をクリックしてください。

    Dockerfile 構成を作成する

ステップ 1. Go リモート実行 / デバッグ構成を作成する

  1. 編集 | 実行構成 をクリックしてください。 または、ツールバーの実行 / デバッグ構成のリストをクリックして、 実行構成の編集 を選択します。

  2. 実行 / デバッグ構成 ダイアログで、 追加 ボタン(追加ボタン )をクリックし、 Go リモート を選択します。

  3. ホスト フィールドに、ホストの IP アドレスを入力します(例: localhost)。

  4. ポート フィールドに、構成したデバッガーポートを入力します。 この例では、 40000 です。

  5. OK をクリックしてください。

    Docker デバッグ用の Go リモート実行/デバッグ構成を作成する

ステップ 2. デバッグプロセスを開始する

  1. サービス ツールウィンドウ(表示 | Tool Windows | Services )で、 Docker | コンテナー を展開します。 作成されたコンテナーが実行中であり、事前構成されたデバッガーポートをリッスンしていることを確認します。

  2. ブレークポイントを配置するには、コード行の近くのガターをクリックします。 例: 提供されているコード例(英語)では、行 23 (message := fmt.Sprintf("Hello %s!", r.UserAgent())) にブレークポイントを配置します。

    ブレークポイント のブレークポイントについて続きを読む。

  3. ツールバーの実行 / デバッグ構成のリストから、 作成した Go リモート構成を選択し、 デバッグ <構成名> ボタン (the デバッグボタン) をクリックします。 または、 Alt+Shift+F9 を押して、作成した Go リモート構成を選択します。

  4. アプリケーションのブレークポイントでイベントをトリガーします。 提供されているコード例を使用した場合は、ブラウザーで http://localhost:8080/ を開いてください。

    次のビデオでは、コンテナーを実行し、リモート実行 / デバッグ構成を作成し、デバッグのためにコンテナーに接続する方法を説明します。

生産性のヒント

リモートプロセスを終了する

  • Ctrl+F2 を押すと、リモートデバッグセッション中にリモートプロセスを終了できます。 プロセスを終了したときに、プロセスに再接続できないことに注意してください。

2026 年 5 月 22 日