目次
[図 2.1]
5. スマートエントリー
6. ブレークポイント条件の設定
7. マルチスレッドのデバッグ
8. ロールバックブレークポイント
ホームページ Java &#&チュートリアル Intellij IDEA でのデバッグの使用方法のグラフィカルな紹介

Intellij IDEA でのデバッグの使用方法のグラフィカルな紹介

Sep 06, 2017 am 09:50 AM
debug idea intellij

デバッグは、コードの実行プロセスを追跡するために使用されます。通常、デバッグ モードを有効にすると、例外の場所と実行プロセス中のパラメータの変更を分析して特定できます。通常、デバッグ モードを有効にして、コードの実行プロセスを追跡し、サードパーティ フレームワークのソース コードを学習することもできます。

それでは、Intellij IDEA での Debug の使い方を学びましょう。主に次の内容が含まれます:

1. デバッグ入門

2. 基本的な使い方とショートカット キー

3. 変数の表示

4. 計算式

5 、インテリジェントなステップイン

6. ブレークポイント条件の設定

VII. マルチスレッドデバッグ

8. 割り込みデバッグ

まず、IDEA のデバッグモードでインターフェイスを見てください。

以下はIDEAでデバッグモードを開始し、ブレークポイントに入った後のインターフェースです。これはWindowsであり、Macのアイコンなどは多少異なる場合があります。下の図でマークされている 8 つの場所について簡単に説明します。

① サービスをデバッグ モードで開始し、左側のボタンを押すと実行モードでサービスを開始します。開発中、私は通常、いつでもコードのデバッグを容易にするために、デバッグ モードを直接開始します。

② ブレークポイント:左側の行番号列を左クリックするか、ショートカットキー Ctrl+F8 を使用してブレークポイントの設定/解除を行います ブレークポイントの線の色は自分で設定できます。

③ デバッグウィンドウ: アクセス要求が最初のブレークポイントに到達すると、デバッグウィンドウが自動的にアクティブになります。自動的にアクティブ化されない場合は、図 1.2 に示すように、設定に移動して設定できます。

④ デバッグボタン: 合計 8 つのボタンがあり、これらのボタンにマウスを置くと、対応するショートカット キーが表示されます。図 1.4 に示すように、同じ対応する機能がメニュー バーの [実行] にもあります。

⑤サービスボタン:サービスの終了/開始、ブレークポイントの設定などがここで行えます。

⑥メソッド呼び出しスタック: デバッグのためにスレッドによって渡されたすべてのメソッドがここに表示されます。右上隅の [すべてのフレームを表示] ボタンをチェックすると、他のクラス ライブラリのメソッドは表示されません。そうでない場合は、ここにたくさんの方法があります。

⑦ 変数: 変数領域では、現在のブレークポイントの前にある現在のメソッドの変数を表示できます。

⑧ウォッチ: 変数を表示するには、変数エリアの変数をウォッチにドラッグして表示できます

[図 1.1]

[図 1.2]: 設定でブレークポイントにデバッグウィンドウを表示するにチェックを入れてエントリを要求しますブレークポイントに到達すると、デバッグ ウィンドウが自動的にアクティブになります

[図 1.3]: IDEA の下部にツールバーまたはステータス バーが表示されていない場合は、ビューで開くことができます。ツールバーを表示すると簡単に開くことができます。私たちが使うために。これら 4 つのオプションを自分で試すことができます。

[図 1.4]: メニュー バーの [実行] にはデバッグに対応する機能があり、対応するショートカット キーを表示できます。

2. 基本的な使い方とショートカット キー

デバッグ デバッグ機能は、主に図 1 のボタン 4 と 5 の 2 つのグループに対応します:

1. まず、最初のボタン グループについて話しましょう。 、合計 8 つのボタンは、左から右に次のとおりです。

[図 2.1]

> 実行ポイントの表示 (Alt + F10): カーソルが他の行または他のページにある場合は、 をクリックします。このボタンを使用して、現在のコードが実行される行にジャンプします。

> ステップオーバー (F8): この行にメソッドがある場合は、ステップオーバーして下に進みます。

> ステップイン (F7): 現在の行にメソッドがある場合、そのメソッドを入力できます。通常、カスタム メソッドを入力するために使用されます。 25行目のputメソッド。

> 強制ステップイン (Alt + Shift + F7): 強制ステップイン、基になるソース コードを表示するときに、このメソッドを使用して公式クラス ライブラリに入ることができます。

> ステップアウト (Shift + F8): ステップアウトし、ステップインしたメソッドからメソッド呼び出しポイントまで終了します。この時点では、メソッドは実行されていますが、割り当ては完了していません。

> フレームのドロップ (デフォルトはなし): ロールバック ブレークポイント。詳細は次の章で説明します。

> カーソルまで実行 (Alt + F9): カーソルまで実行します。表示する必要がある行にカーソルを置き、この関数を使用すると、コードはブレークポイントなしでカーソル行まで実行されます。

> 式の評価 (Alt + F8): 式を計算します。これについては、次の章で詳しく説明します。

2. 2 番目のボタン グループ (合計 7 つのボタン) は、上から下まで次のとおりです。

[図 2.2]

> Rerun 'xxxx': プログラムを再実行します。プログラム。

> 「技術」アプリケーションの更新 (Ctrl + F5): プログラムを更新します。通常、この機能はコードが変更された後に実行できます。この機能の対応する操作は、図 2.3 に示すように、サービス構成内にあります。

> プログラムの再開 (F9): たとえば、20 行目と 25 行目に 2 つのブレークポイントがあり、現在 20 行目まで実行している場合は、F9 を押して次のブレークポイント (つまり 25 行目) まで実行します。 ).OK)、その後にブレークポイントがないため、F9 キーを押してプロセス全体を実行します。

> プログラムを一時停止: プログラムを一時停止し、デバッグを有効にします。具体的な使い方はまだ見つかっていません。

> 「xxx」を停止 (Ctrl + F2): プログラムを終了するには、連続して 2 回押します。サービスを閉じて再度開始すると、ポートが占有されていると報告される場合があります。これは、サービスが完全に閉じられていないため、すべての JVM プロセスを強制終了する必要があります。

> ブレークポイントの表示 (Ctrl + Shift + F8): すべてのブレークポイントを表示します。これについては後の章で説明します。

> ブレークポイントをミュート: これを選択すると、すべてのブレークポイントが灰色になり、プログラムを直接実行するには、ブレークポイントが無効になります。もう一度クリックすると、ブレークポイントが赤くなり、有効になります。特定のブレークポイントのみを無効にしたい場合は、図 2.4 に示すように、ブレークポイントを右クリックして [有効] をキャンセルすると、この行のブレークポイントが無効になります。

[図 2.3]: 更新プログラム、「更新」アクションでは、更新操作を実行するときに何が行われるかについて、通常は「クラスとリソースの更新」、つまりクラスとリソース ファイルの更新を選択します。

JRebel をアクティベートする方法は最後の章に添付されています。 R 以下のフレーム非アクティブ化は、IDEA ウィンドウがフォーカスを失ったときにトリガーされます。つまり、IDEA からブラウザーに切り替えると、IDEA は自動的にそれを支援します。通常、頻繁に切り替えるとリソースが消費されます。より多くのリソース。

1. 以下のように、IDEAではパラメータが配置されている行の後に現在の変数の値が表示されます。

[図 3.1]

2. パラメータの上にカーソルを置くと、現在の変数情報が表示されます。クリックすると、図 3.3 に示す詳細が開きます。私は通常この方法を使用します、それは速くて便利です。

[図 3.2]

[図 3.3]

3. 変数の表示。現在のメソッド内のすべての変数が表示されます。

[図 3.4]

4. [ウォッチ] で [新しいウォッチ] をクリックし、表示する変数を入力します。または、変数から Watche にドラッグして表示することもできます。

[写真 3.5]

時計をお持ちでない場合は、下の写真の場所にあるかもしれません。

[図 3.6]

[図 3.7]

IV. 計算式

先ほどの計算式は、図 4.1 式の評価 (Alt + F8) のボタンです。この操作を使用すると、デバッグ中に情報を出力せずに式の値を計算できます。

[図 4.1]

1. Alt + F8 または ボタンを押すか、式を選択してから Alt + F8 を押して式を計算するウィンドウをポップアップ表示します。以下に示すように、Enter を押すか、「評価」をクリックして、式を計算します。式の値を計算します。

この式は一般的な変数やパラメータだけでなく、コード行で複数のメソッドを呼び出すと、この方法でメソッドの戻り値を表示できます。

[図 4.2]

2. 変数を設定する 計算式ボックスでは、変数の値を変更することができ、さまざまな値をデバッグするのに便利ですよね。

[図 4.3]

5. スマートエントリー

考えてみてください、コード行にはいくつかのメソッドがありますが、どのようにして特定のメソッドのみを選択して入力することができるでしょうか。メソッドに入るにはステップイン(Alt + F7)または強制ステップイン(Alt + Shift + F7)を使用できると前述しましたが、この 2 つの操作はメソッドの呼び出し順序に従って順番に入力されるため、さらに面倒です。

それでは、Smart Step Into がとても便利です、Smart Step Into、この機能は、図 5.1 に示すように、Run、Smart Step Into (Shift + F7) で見ることができます

[図 5.1]

Shift + F7 を押して、図 5.2 に示すように、現在のブレークポイント行が自動的に検索され、入力する必要があるメソッドがリストされます。メソッドをクリックしてメソッドを入力します。

方法が 1 つしかない場合は、Force Step Into と同様に直接入力します。

[図 5.2]

6. ブレークポイント条件の設定

ブレークポイント条件を設定することで、条件が成立した場合はブレークポイントで停止し、そうでない場合はそのまま実行されます。

通常、比較的大きなコレクションや配列を走査してループ内にブレークポイントを設定するとき、変数の値を 1 つずつ確認する必要がありますか?きっと疲れるでしょうし、見逃してしまったかもしれないので、もう一度やる価値はあります。

1. 図 6.1 に示すように、ブレークポイントを右クリックして、現在のブレークポイントの条件を直接設定します。ブレークポイントは、exist を true に設定した場合にのみ有効になります。

[図 6.1]

2. [ブレークポイントの表示] (Ctrl + Shift + F8) をクリックして、すべてのブレークポイントを表示します。

Java Line Breakpoints には、右側にあるすべてのブレークポイントが表示され、ブレークポイントの条件を設定します。

コンソールへのログメッセージを確認すると、図6.3に示すように、現在のブレークポイント行がコンソールに出力されます

このコード行を実行すると inonia\\\\ 式が計算でき、結果は次のように出力されます。コンソール。

インスタンスのフィルタリング、インスタンス ID (図 6.5 のインスタンス ID) を入力しますが、理由はわかりませんが、それを知っている友達はメッセージを残すことができます。

クラスフィルター:クラスフィルター、クラス名に基づくフィルターも失敗しました...

パスカウント:ループで使用され、ブレークポイントがループ内にある場合は、この値を設定でき、ループが何回停止するかブレークポイントを指定すると、後続のループはブレークポイントで停止します。

[図6.4]

[図6.5]

4. 例外ブレークポイントを設定することで、プログラム内でインターセプトする必要のある例外が発生した場合に、例外行が自動的に配置されます。 。

図6.6に示すように、+記号をクリックしてJava例外ブレークポイントを追加し、例外ブレークポイントを追加します。次に、図 6.7 に示すように、ブレークポイントを必要とする例外クラスを入力すると、「Java 例外ブレークポイント」で追加された例外ブレークポイントを確認できます。

図 6.8 に示すように、ここに NullPointerException 例外ブレークポイントを追加しました。ヌル ポインター例外が発生すると、ヌル ポインター例外行に自動的に配置されます。

[写真6.6]

[写真6.7]

[写真6.8]

7. マルチスレッドのデバッグ

通常、デバッグを行うときは、1 つのスレッドで段階的に実行します。しかし、デバッグ中に、別のリクエストを開始することさえできないことに気づくことがありますか?

これは、デバッグ時の IDEA のデフォルトのブロック レベルが ALL であり、他のスレッドは現在のデバッグ スレッドが終了したときにのみ実行されるためです。図 7.1 に示すように、[ブレークポイントの表示] で [スレッド] を選択し、[デフォルトにする] をクリックしてデフォルトのオプションとして設定できます。

[図 7.1]

図 7.1 の [フレーム] のドロップダウン リストで、現在のスレッドを切り替えることができます。ここでもう一方のスレッドを切り替えます。 、別のデバッグ スレッドに入ります。

[図 7.1]

8. ロールバックブレークポイント

デバッグの際、再度リクエストを行わずに処理をやり直したいですか?

1. まず、図 8.1 に示すように、このメソッドの呼び出しスタックを確認します。まず、DemoController の insertDemo メソッドに入るように要求し、次に、先頭のメソッドの呼び出しを無視します。現在のブレークポイントがあるメソッドです。

[図 8.1]

2. ブレークポイントのロールバック

いわゆるブレークポイントのロールバックは、実際には、前のメソッド呼び出しの先頭にロールバックすることですが、IDEA では、テストは行ごとにロールバックしたり、Return to したりすることはできません。前のブレークポイントですが、前のメソッドに戻ります。

ロールバックには 2 つの方法があります。1 つは [フレームのドロップ] ボタン (図 8.2) で、サードパーティのクラス ライブラリの他のメソッドを含む、呼び出されたメソッドに従って段階的にロールバックします ([すべてのフレームを表示] ボタンをキャンセルすると表示されます)。図 8.3 に示すように、サードパーティのクラス ライブラリのメソッド。

2 番目の方法は、コールスタックメソッドでロールバックするメソッドを選択し、右クリックして [フレームのドロップ] を選択し (図 8.4)、そのメソッドの前のメソッド呼び出しにロールバックしてから、F9 キーを押します (プログラムの再開) ) プログラムがこのメソッドのブレークポイントに入ったことがわかります。

ただし、注意すべき点は、ブレークポイントのロールバックはプロセスを再度実行することしかできないということです。オブジェクト、コレクション、更新されたデータベースなど、一部のパラメーター/データのステータスが以前に変更されている場合、以前のステータスにロールバックすることはできません。データなど。

グラフ [8.2]

etto [8.4] デバッグ中にリクエストを中断したい場合は、残りのプロセスを再度終了しないでください。

渡されたパラメーターが間違っていることがわかった後、このリクエストを中断する方法 (後続のプロセスによりデータベース データが削除されます...) を実行する必要がある場合があります。サービスを閉じてプログラムを再起動しますか?まあ、私もそうしていました。

正確に言うと、(サービスをシャットダウンする以外に)リクエストを直接中断する方法は見つかりませんでしたが、図9.1に示すように、Force Return、つまり強制的にリターンすることで、以降の処理を回避することができます。

「強制的に戻る」をクリックすると、「戻り値」ウィンドウが表示されます。私のメソッドの戻り値の型は Map なので、ここで結果を直接返して強制的に戻り、これ以上の手順は実行されません。または、新しい HashMap<>() を作成することもできます。

[図9.1]

設定ファイルはホットアップデート可能です。場合によっては、サービスが長時間開いていた場合、または多くのファイルが変更されていた場合、ホット アップデートが有効にならず、サービスの再起動が必要になることがあります。

ここでは、私がインターネットで見た永久使用権(クラックされていないもの)を取得する方法を簡単に説明しますが、この方法がいつ利用できなくなるかはわかりません。

① まず、Facebook または Twitter アカウントが必要です (Twitter が最適です)

② 図 10.1 に示すように、この Web サイト: https://my.jrebel.com/ に入り、ログインします

③ 次に、Install and Acticate で永久アクティベーション コードを取得できます。

④ 図 10.3 に示すように、設定で Jrebel にアクティベーション コードを設定します。 JRebel プラグインがインストールされていない場合は、まず Plugins で JRebel プラグインを検索してインストールします。

[写真10.1]

[写真10.2]

[写真10.3]

以上がIntellij IDEA でのデバッグの使用方法のグラフィカルな紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

アイデアコミュニティ版とプロフェッショナル版の違い アイデアコミュニティ版とプロフェッショナル版の違い Nov 07, 2023 pm 05:23 PM

IDEA Community Edition と Professional Edition の違いには、認証方法、機能、サポートとアップデート、プラグイン サポート、クラウド サービスとチーム コラボレーション、モバイル開発サポート、教育と学習、統合とスケーラビリティ、エラー処理とデバッグ、セキュリティとプライバシーが含まれます。保護など詳細な紹介: 1. 認証方法. コミュニティ バージョンは無料で、使用されているオペレーティング システムに関係なく、すべての開発者に適しています. コミュニティ バージョンは、オープン ソース プロジェクトと商用プロジェクトをサポートしています. プロフェッショナル バージョンは有料で、商用開発に適しています. professional バージョンには 30 日間の試用期間があり、その後継続して使用するにはライセンスを購入する必要があります。

コードを効率的に記述するための 5 つの IntelliJ IDEA プラグイン コードを効率的に記述するための 5 つの IntelliJ IDEA プラグイン Jul 16, 2023 am 08:03 AM

人工知能 AI は現在、将来のトレンドと開発の方向性として広く認識されています。 AI がすべての仕事を置き換えるのではないかと心配する人もいますが、実際には、AI が置き換えるのは反復性が高く、生産性の低い仕事だけです。したがって、私たちは一生懸命働くのではなく、より賢く働くことを学ぶ必要があります。この記事では、生産性を向上させ、退屈な繰り返し作業を軽減し、作業をより効率的かつ便利にする 5 つの AI 駆動 Intellij プラグインを紹介します。 1GithubCopilotGithubCopilot は、OpenAI と GitHub が共同開発した人工知能コード支援ツールです。 OpenAI の GPT モデルを使用してコードのコンテキストを分析し、新しいコードを予測して生成します

SpringBoot プロジェクトにブレークポイントを設定するときに無効なデバッグが発生する問題を解決する方法 SpringBoot プロジェクトにブレークポイントを設定するときに無効なデバッグが発生する問題を解決する方法 May 11, 2023 am 10:49 AM

Springboot プロジェクトは初めてです (1) ブレークポイントのデバッグが効果がないことがわかり、非常に落ち込んで、オンラインで解決策を探しました。私が目にしたのは、リモート デバッグであると言われているいくつかの非常に複雑なソリューションだけでしたが、追加の冒頭のスローガンも必要でした。これは従来のプロジェクトとは異なるので、必要ないと思います。そこでいろいろ調べてみたところ、もっと簡単な方法があることが分かりました 手順は以下の通りです: pom ファイルのプラグイン部分に設定を追加します: false でOKです; (2) SpringBoot プロジェクトのエラーについて従来の Web プロジェクトには web.xml ファイルが必要ですが、SpringBoot プロジェクトには web.xml ファイルが必要ないため、web.xml ファイルがありません。

複数の SpringBoot プロジェクトを開始する方法のアイデア 複数の SpringBoot プロジェクトを開始する方法のアイデア May 28, 2023 pm 06:46 PM

1. 準備 Idea を使用して helloworld SpringBoot プロジェクトをビルドします。開発環境説明: (1) SpringBoot2.7.0 (2) アイデア:IntelliJIDEA2022.2.2 (3) OS:MacOS環境が異なり、一部操作が若干異なりますが、全体的な考え方は同じです。 2. SpringBoot2.1 を複数起動する 解決策 1: 設定ファイルのポートを変更する SpringBoot プロジェクトでは、設定ファイルでポート番号を設定できるため、最も簡単な解決策は設定ファイルのポートを変更することです。ファイル application.(properties/yml)

アイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法 アイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法 May 17, 2023 pm 06:49 PM

SpringBoot プロジェクトで、永続層フレームワークとして MyBatis が使用されている場合、自動インジェクションを使用するとマッパーが null ポインター例外を報告するという問題が発生する可能性があります。これは、自動挿入中に SpringBoot が MyBatis の Mapper インターフェイスを正しく識別できず、追加の構成が必要になるためです。 1. Mapper インターフェイスにアノテーションを追加する @Mapper アノテーションを Mapper インターフェイスに追加して、このインターフェイスが Mapper インターフェイスでありプロキシする必要があることを SpringBoot に伝えます。例は次のとおりです: @MapperpublicinterfaceUserMapper{//...}2

アイデアとはどのようなソフトウェアですか? アイデアとはどのようなソフトウェアですか? Sep 02, 2022 pm 05:05 PM

Idea は、JetBrains Software Company が開発した Java 統合開発環境ツール ソフトウェアです。 IDEA はインテリジェントなコーディングを提唱しており、その特別な機能には、インテリジェントな選択、コーディング支援、柔軟な組版、動的構文検出、コード検査、JSP の完全サポート、プリセット テンプレート、バージョン管理の完全なサポート、インテリジェント コードなどが含まれます。

IdeaでSpringbootホットデプロイが無効になる問題の解決方法 IdeaでSpringbootホットデプロイが無効になる問題の解決方法 May 18, 2023 pm 06:01 PM

一、启アイデア自動make機能1-コンパイラーからのAutomakeを有効にするPRESS:CTRL+SHIFT+ATYPE:makeprojectautomaticallyPRESS:EnterEnableMakeProjectautomatically機能2-アプリケーションの実行中にAutomakeを有効にするPRESS:CTRL+SHIFT+ATYPE:Registryキーcompiler.automake.allowを見つけます。

IntelliJ IDEA で Java Stream 操作をデバッグする方法 IntelliJ IDEA で Java Stream 操作をデバッグする方法 May 09, 2023 am 11:25 AM

ストリーム操作は Java8 のハイライトです。 java.util.stream は非常に強力ですが、実際の作業ではほとんど使用していない開発者がまだ多くいます。最も不満の理由の 1 つは、デバッグが難しいということです。実際、最初の頃はそうでした。 as stream は DEBUG では使用できません 1 行のコードだと、実際には次のステップになると多くの操作が一度に渡されるため、どの行に問題があるのか​​判断するのが困難です。プラグイン: JavaStreamDebugger 使用している IDEA バージョンが比較的新しい場合、このプラグインはすでに含まれているため、インストールする必要はありません。まだインストールされていない場合は、手動でインストールしてから以下に進みます。

See all articles