かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

IntelliJ IDEA のデバック機能のメモ書き

Spring Boot でメール送信する Web アプリケーションを作る ( 番外編 )( DataSource Bean に application.properties の設定が反映される仕組みとは? ) の調査で IntelliJ IDEA のデバッグ機能を使ってみたので、その時のメモ書きです。

IntelliJ IDEA のデバッグ機能は欲しいと思う機能がいろいろ用意されており、動作も軽快で使いやすいと思いました。

Step 実行中にソースファイル上に変数の値が表示される

f:id:ksby:20150510084633p:plain

Step 実行している時にソースファイルの右側に変数の値が表示されます。上の画像の右側にグレーの文字で表示されているのはソースファイルの内容ではなく、IntelliJ IDEA が表示している変数の内容です。

dataSource に設定されているフィールドの値も表示されるので、どのタイミングで値がセットされるのかを追った時には非常に助かりました。

メソッドの呼び出し履歴が追える

f:id:ksby:20150510075805p:plain

上の画像の赤枠の部分に呼び出されたメソッドの呼び出し履歴が表示されており、現在の場所に至るまでにどのクラスのどのメソッドが呼び出されたのかを確認することができます。ダブルクリックすれば、ソースファイルが開いて該当箇所へジャンプします。

ブレークポイント一覧が表示される

f:id:ksby:20150510080219p:plain

f:id:ksby:20150510080522p:plain

最初の画像の左側の「View Breakpoints」ボタンをクリックすると次の画像の「Breakbpoints」ダイアログが表示され、赤枠の部分に現在設定されているブレークポイント一覧が表示されます。

ブレークポイントを一時的に無効にすることが出来る

f:id:ksby:20150510081508p:plain

「Breakpoints」ダイアログの上の赤枠のいずれかのチェックボックスのチェックを外すことで、ブレークポイントを一時的に無効に出来ます。

ブレークポイントが有効になる条件を条件式で指定できる

f:id:ksby:20150510082532p:plain

「Breakpoints」ダイアログの画面右側の「Condition」チェックボックスをチェックして条件式を記述すると、その条件式に一致する場合のみブレークポイントが機能するように指定することができます。

Bean 関連のメソッドは頻繁に呼び出されるため、beanName が "dataSource" の時だけ止めることが出来るこの機能は調査の時に一番欲しい機能でした。

最初条件式の書き方が分からなかったのですが、F1 キーを押したらブラウザで IntelliJ IDEA 14.1.1 Help - Breakpoints のページが表示されてそこに書いてありました。

「Breakpoints」ダイアログからブレークポイントを解除できる

f:id:ksby:20150510083222p:plain

「Breakpoints」ダイアログの右下にブレークポイントを設定したソースの該当箇所が表示されていますが、ここで左側の●をクリックすることでブレークポイントを解除することができます。ソースファイルの該当箇所を開く必要がないのはいいですね。