1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IntelliJでリモートデバッグ

Last updated at Posted at 2023-07-08

はじめに

以前の記事でマルチプロジェクト構成のSpringBootアプリを作成しました。
この時、IntelliJでのデバック実行ではなく、GradleのbootRunでアプリを立ち上げていた為、
これまでのようなデバッグを出来るようにリモートデバッグを試してみました。

環境

Java:17
SpringBoot:3.1.1
Gradle:8.1.1
IntelliJ:IntelliJ IDEA 2022.3 (Community Edition)
プロジェクト:multi-project(以前の記事のプロジェクト)

1.デバッガーを設定

IntelliJの実行構成で「リモート JVMデバッグ」指定し、デバッガーを設定します。
設定詳細は、下図のように設定します。

スクリーンショット 2023-07-08 10.12.44.png

設定のポイント

基本的に初期設定そのままです。
ホスト:
 デバッグするアプリを実行しているホストを指定します。
 今回はローカルでSpringBootアプリを実行するので「localhost」に設定します。
ポート:
 デバッグするアプリが受信デバッガー接続を受け入れるポート番号
 特に理由なければ、デフォルトの「5005」を指定します。
使用するモジュールのクラスパス:
 デバッグ時に使用するクラスパスを指定します。
 今回はマルチプロジェクト構成なので、ルートプロジェクトである「multi-project」を指定します。

2.SpringBootアプリを実行

デバッガーを設定したら、デバッグするアプリを起動してみます。
オプションで「--debug-jvm」指定して、bootRunを実行します。

% ./gradlew :multi-project-A:bootRun --debug-jvm

> Task :multi-project-A:bootRun
Listening for transport dt_socket at address: 5005
<==========---> 80% EXECUTING [12s]
> :multi-project-A:bootRun

アプリが起動すると、「Listening for transport dt_socket at address: 5005」と出力されます。
これでデバッグエージェントが有効になり、アプリが受信デバッガーとの接続可能になっています。
※デバッガー側で設定したポート番号と一致していること

3.デバッガーを起動

次にデバッガーを起動します。
実行構成から作成したデバッガーを選択し、デバッグボタンを押下します。

デバッガーを起動し、以下のメッセージが出力されれば成功です。

ターゲット VM に接続しました。アドレス : 'localhost:5005'、トランスポート: 'ソケット'

注意
デバッガーより先にデバッグするアプリを実行してください。
アプリを実行していないと、ConnectExceptionが発生します。

デバッガーのポートを開けません (localhost:5005): java.net.ConnectException "Connection refused"

4.確認

最後にデバッグしたいポイントにブレークポイントを付け、リクエストしてみます。
ブレークポイントの箇所で処理が中断されれば成功です。

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?