デバッグは、コードの実行プロセスを追跡するために使用されます。通常、デバッグ モードを有効にすると、例外の場所と実行プロセス中のパラメータの変更を分析して特定できます。通常、デバッグ モードを有効にして、コードの実行プロセスを追跡し、サードパーティ フレームワークのソース コードを学習することもできます。
それでは、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 つのグループに対応します:
[図 2.1]
> 実行ポイントの表示 (Alt + F10): カーソルが他の行または他のページにある場合は、 をクリックします。このボタンを使用して、現在のコードが実行される行にジャンプします。
> ステップオーバー (F8): この行にメソッドがある場合は、ステップオーバーして下に進みます。
> ステップイン (F7): 現在の行にメソッドがある場合、そのメソッドを入力できます。通常、カスタム メソッドを入力するために使用されます。 25行目のputメソッド。
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]
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]
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]
設定ファイルはホットアップデート可能です。場合によっては、サービスが長時間開いていた場合、または多くのファイルが変更されていた場合、ホット アップデートが有効にならず、サービスの再起動が必要になることがあります。 ここでは、私がインターネットで見た永久使用権(クラックされていないもの)を取得する方法を簡単に説明しますが、この方法がいつ利用できなくなるかはわかりません。 ① まず、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 サイトの他の関連記事を参照してください。

JVMは、バイトコード解釈、プラットフォームに依存しないAPI、動的クラスの負荷を介してJavaのWORA機能を実装します。 2。標準API抽象オペレーティングシステムの違い。 3.クラスは、実行時に動的にロードされ、一貫性を確保します。

Javaの最新バージョンは、JVMの最適化、標準的なライブラリの改善、サードパーティライブラリサポートを通じて、プラットフォーム固有の問題を効果的に解決します。 1)Java11のZGCなどのJVM最適化により、ガベージコレクションのパフォーマンスが向上します。 2)Java9のモジュールシステムなどの標準的なライブラリの改善は、プラットフォーム関連の問題を削減します。 3)サードパーティライブラリは、OpenCVなどのプラットフォーム最適化バージョンを提供します。

JVMのバイトコード検証プロセスには、4つの重要な手順が含まれます。1)クラスファイル形式が仕様に準拠しているかどうかを確認し、2)バイトコード命令の有効性と正確性を確認し、3)データフロー分析を実行してタイプの安全性を確保し、検証の完全性とパフォーマンスのバランスをとる。これらの手順を通じて、JVMは、安全で正しいバイトコードのみが実行されることを保証し、それによりプログラムの完全性とセキュリティを保護します。

java'splatformendencealLowsApplicationStorunOperatingSystemwithajvm.1)singlecodebase:writeandcompileonceforallplatforms.2)easyUpdates:updatebytecodeforsimultaneousdeployment.3)テストの実験効果:scalbortffortfforduniverbehaviol.4)

Javaのプラットフォームの独立性は、JVM、JITコンピレーション、標準化、ジェネリック、ラムダ式、Projectpanamaなどのテクノロジーを通じて継続的に強化されています。 1990年代以来、Javaは基本的なJVMから高性能モダンJVMに進化し、さまざまなプラットフォームでのコードの一貫性と効率を確保しています。

Javaはプラットフォーム固有の問題をどのように軽減しますか? Javaは、JVMおよび標準ライブラリを通じてプラットフォームに依存します。 1)bytecodeとjvmを使用して、オペレーティングシステムの違いを抽象化します。 2)標準のライブラリは、パスクラス処理ファイルパス、CHARSETクラス処理文字エンコードなど、クロスプラットフォームAPIを提供します。 3)最適化とデバッグのために、実際のプロジェクトで構成ファイルとマルチプラットフォームテストを使用します。

java'splatformentencentenhancesmicroservicesecturectureby byofferingdeploymentflexability、一貫性、スケーラビリティ、およびポート可能性。1)展開の展開の展開は、AllosmicRoserviThajvm.2)deploymentflexibility lowsmicroserviceSjvm.2)一貫性のあるAcrossServicessimplisimpligiessdevelisementand

Graalvmは、Javaのプラットフォームの独立性を3つの方法で強化します。1。言語間の相互運用性、Javaが他の言語とシームレスに相互運用できるようにします。 2。独立したランタイム環境、graalvmnativeimageを介してJavaプログラムをローカル実行可能ファイルにコンパイルします。 3.パフォーマンスの最適化、Graalコンパイラは、Javaプログラムのパフォーマンスと一貫性を改善するための効率的なマシンコードを生成します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









