記事のディレクトリ
デバッグコードは、典型的には、例外がプログラム実行中に発生した、デバッグモードが動作中に異常な位置特定の分析、およびパラメータの変更を可能にし得る、プロセスの動作を追跡するために使用されます。通常、我々はまた、ソースコードの三者枠組みを学ぶために、実行中のプロセスを追跡するために、デバッグモードを有効にすることができます。
.DEBUGを開きます
まず、デバッグモードでのIDEAのインターフェースを見てください。
以下は、デバッグモードのIDEAで開始され、インターフェース休憩に入った後、私は、Windowsでここに持っている、とMacのアイコンは多少異なる場合があります。単純にマークされ、図中の8箇所は言います:
①左のボタンは実行モードが起動するに基づいて、デバッグモードでサービスを開始します。開発では、私は通常、いつでも便利なデバッグコードで、直接デバッグモードを開始しました。
②ブレークポイント:左の列の行番号は、ブレークポイントを取り消す/左ボタンまたはCtrl + F8がマークされたショートカットキーをクリックして、ブレークポイントの線の色は、自分自身を設定することができます。
デバッグウィンドウ③:アクセス要求が最初のブレークポイントに到達した後、デバッグウィンドウが自動的に起動します。活性化されていない場合は、図1.2に示すように、中に設定するために提供することができます。
④ボタンをデバッグ:これらのボタンの主な機能の試運転8つのボタンの合計は、対応するショートカットキーを表示するボタンにカーソルを合わせ、対応することになります。同じことが図1.4で実行して、メニューバーに対応する機能で見つけることができます。
⑤サービスボタン:ここでは、その上のサービス、セットブレークポイントとを開始/シャットダウンすることができます。
⑥メソッド呼び出しスタック:右上隅のそれは、スレッドがデバッグされているすべてのメソッドを示し、チェック[すべてを表示フレーム]ボタン、方法の他のライブラリは、それ以外の方法がたくさんあるでしょう、表示されません。
⑦変数:可変領域内の変数は、現在のブレークポイント前に、現在の方法の中に見ることができます。
⑧時計:ウォッチ変数、することができます変数変数ドラッグ時計表示中
[図1.1]
デバッグウィンドウが自動的にブレークポイントの設定で表示するデバッグウィンドウを確認した後に起動し、要求を破るに進む。:[図1.2]
[図1.3]:あなたの一番下IDEAは、ツールバーやステータスバーが表示されない場合は、ビューを開くことができ、ツールバーは便利な使用に私たちが表示されます。あなたはこれらの4つのオプションの下で試して行くことができます。
[図1.4]:そこメニューバーの実行に対応したデバッグ機能があり、そしてあなたは、対応するショートカットキーを表示することができます。
II。基本的な使い方&ショートカット
。デバッグは、図4及び5つのボタンに主機能対応デバッグ。
図1に示すように、次のように左から右に、前記第一のボタンの最初のセット、8つのボタンの合計:
[図2.1]
-
ショーの実行ポイント(Altキー+ F10キー):他の行または他のページ内のカーソルが、実行されるコードの現在の行にジャンプするにはこのボタンをクリックした場合。
-
(F8)ステップオーバー:メソッドは、この行のメソッドを入力しない場合、ダウンする行ごとに、〜ステップ。
-
ステップイン(F7):通常、カスタムメソッドへの方法、内部メソッドへのアクセスがある場合、現在の行に、ライブラリは公定法に入らない、などPUTライン25のような方法。
-
フォースステップイン(Altキー+ Shiftキー+ F7)は:強制的に入力され、あなたが公式のライブラリを入力するには、このメソッドを使用することができたときに表示するためにどのような方法で基本となるソースコードを入力することができます。
-
ステップアウト(Shiftキー+ F8):この時点でメソッドへのステップへのメソッド呼び出しからの出口ステップアウト方法は終了し、まだ割り当てを完了していません。
-
ドロップフレーム(デフォルトなし):フォールバックブレークポイント、後の章詳細。
-
カーソル(Altキー+ F9)を実行します。カーソルにファイル名を指定して実行、あなたが見る必要があるという行にカーソルを置き、その後、この機能を使用することができ、コードは割り込みポイントを必要とせずに、カーソル行まで実行されます。
-
式を評価する(Altキー+ F8)は:計算式は、後の章で詳しく説明しました。
図2に示すように、上から下へのボタンの第二群、7つのボタンの合計は、次のように
[2.2]
-
再実行して「XXXX」:プログラムを再実行して、プログラム、サービスをシャットダウンした後に再起動します。
-
アップデート「ハイテク」アプリケーション(Ctrlキー+ F5):アップデート、あなたが実行可能コードを変更する通常の後には、この機能を持っています。これはサービスの構成図で機能に対応する動作である。2.3。
-
再開プログラム(F9):回復プログラム、たとえば、あなたは、次のブレークポイントまで実行ライン20とライン25、現在の実行にライン20、F9キーを押し、2つのブレークポイントを持っている(すなわち、25行目)、その後、後者は何もブレークポイントを持っていないので、F9キーを押して、その後、完全なプロセスを実行します。
-
プログラムを一時停止:プログラムの一時停止は、デバッグを有効にします。現在、具体的な使用量を見つけることができませんでした。
-
停止 'XXX'(Ctrlキー+ F2):ダブル連続、プログラムを閉じます。時には、あなたは近いし、サービスを開始するとき、あなたは見つけるでしょう、ポートが占有されていることを報告し、それは完全にあるため、サービスの理由で閉鎖されていない、あなたはすべてのJVMプロセスを強制する必要があります。
-
ビューブレークポイント(Ctrlキー+ Shiftキー+ F8):ビューすべてのブレークポイント、以降の章が関与することになります。
-
ミュートブレークポイント:ブレークポイントダム、これを選択すると、すべてのブレークポイントは、ブレークポイントが失敗し、あなたが直接F9完全な実行にプログラムを押すことができ、灰色に。赤、かつ効果的に侵入するには、再度クリックしてください。あなたは、障害のために休憩をしたい場合は、図2.4、改行の故障に示すように、右有効、ブレークポイントでキャンセル。
[2.3]:更新操作は物事をやったときに、更新プログラム、オン」アップデートのアクションは、実行さ、一般に「更新のクラスおよびリソース」を選択し、クラスおよびリソース・ファイルを更新しています。
あなたがサービスを再起動するために、すべてのコードが変更に行く必要はありませんので、一般的にはプラグインとの熱い展開に、このようJRebel後に良くなります。JRebelを有効にするにはどのように、最後の章に同行しました。
アイデアは自動的にあなたが物事を行うのに役立ちますとき、ウィンドウは一般的にあなたが行うのは何も設定することができない、頻繁な切り替えは、資源のより消費となり、一般的には、ブラウザにアイデアから切り替えることをフォーカスIDEAトリガを失ったときに、フレームの不活性化には、次の。
[2.4]
III。変数ビュー
デバッグプロセスでは、必要な変数を考慮して変更を追跡、ここでは単に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]
V.インテリジェントENTERED
入力する一つの特定の方法を選択する方法を、いくつかの方法があり、それについてのコードの行を考えてみてください。メソッドの内部へ(Altキー+ Shiftキー+ F7)の中へ、前述のステップイン(Altキー+ F7)または強制ステップを使用しますが、操作は方法に応じて2つのコール・シーケンスに変わります、それはあまりにも面倒です。
非常に便利にとてもスマートステップ、インテリジェント入力すると、この機能は、図5.1に示すように、(Shiftキー+ F7)に遭遇レーン、スマートステップで見ることができます
[図5.1]
Shiftキーを押し+ F7は、自動的に現在の行を分割するように配置され、リストの方法は、5.2のように、入力した内部メソッドを入力する方法をクリックする必要があります。
唯一の方法があれば、直接強制ステップインに似て行きます。
[図5.2]
VI。ブレーク条件設定
ブレークポイントの条件を設定することで、条件が満たされたときに、私たちは、ブレークポイントで停止、または直接実行します。
通常、我々はループがブレークポイントを設定中に、我々は変数の値を参照しようとしている大規模なコレクションまたは配列を通過するとき?それは多分あなたがそうもう一度、この価値を逃し、非常に疲れている必要があります。
図1は、図6.1に示す右直接ブレークポイント条件現在のブレークポイント、上に、私を有効にするにはtrueにブレークポイントが存在する設定しました。
[図6.1]
2.すべてのブレークポイントを表示するには、ビューブレークポイント(+ F8はCtrl + Shiftキー)をクリックします。
Javaのラインブレークポイントは、すべてのブレークポイントを示し、右側にセット条件付きブレークポイントを条件をご確認ください。
コンソールにログメッセージを確認し、それがコンソールに現在の行を中断します、図6.3
評価し、ログを確認、このラインで実行することができる式を算出した値であり、コンソールに結果を出力します。
[6.2]
[図6.3]
図3は、右フィルタフィルタは、単純に次のことを意味、これらの一般的な状況下で使用されていないことを言います。
インスタンスフィルタ:友人はメッセージを残して、なぜ、知っている私は知らない、フィルターの例は、(図6.5インスタンスIDでの)インスタンスIDを入力しますが、私は成功を持っていません。
クラスのフィルタ:も成功せず、カテゴリフィルタ、クラス名によってフィルタ、...
パスカウントは:サイクルのために、ループ内のブレークポイントならば、あなたはサイクルがブレークポイントで停止します後のサイクルは、ブレークポイントで停止した後に何回、この値を設定することができます。
[図6.4]
[図6.5]
4、例外ブレークポイントの設定によりブレークポイント例外は、異常がプログラムを遮断する必要が生じた場合、自動的にライン異常に配置されています。
図6.6は、例外ブレークポイントを追加し、+は、Java例外ブレークポイントの追加]をクリックします。そして、必要なブレークポイント例外クラスを入力して、6.7のように、あなたはJavaの例外ブレークポイントの年に追加例外ブレークポイントを見ることができます。
私は、NullPointerExceptionがブレークポイント、図6.8、NULLポインタ例外が自動的にnullポインタ例外ラインに配置発生ここに追加します。
[図6.6]
[図6.7]
[図6.8]
VII。マルチスレッドのデバッグ
私たちの試運転は、スレッド内で通常の状況下で行くためのステップバイステップです。しかし、時には、あなたはデバッグは、別の要求を開始したいときに行うことができないことがわかりますか?
レベルが他のスレッドをブロックすることができ、デバッグALLときIDEAはデフォルトでブロックされているため、現在のスレッドがフィニッシュをデバッグする場合はその者は、他のスレッドにのみ移動します。ビューブレークポイントは、デフォルトのオプションを設定するには、メイクのデフォルトをクリックし、図7.1に示すように、スレッド内で選択することができます。
[図7.1]
私はここ2つのデバッグスレッドを持っているように、スイッチスレッドは、ドロップダウンリスト図7.2フレームの中で、あなたは他には、別のデバッグのスレッドに切り替えられる、現在のスレッドを切り替えることができます。
[7.2]
VIII。フォールバックブレーク
デバッグするときは、プロセスについて再取るのではなく、再び要求を開始したいですか?
図1は、図8.1に示されているこのメソッド呼び出しスタック、insertDemo DemoController方法を入力する第1の要求を認識し、次いで挿入メソッドを呼び出して最初の、我々は、他の第一の物質たinvoke、現在の方法のトップは、ブレークポイント方式です。
[図8.1]
2、ブレークロールバック
いわゆるブレークポイントのフォールバック、実際には、メソッド呼び出しのフォールバックの初めに、テストは、ブレークポイントに戻ったり後ろにIDEAで行ずつできませんが、以前の方法に戻ります。
ドロップフレームボタン(図8.2)用の2つの代替方法は、他の方法を含め、段階的なロールバックメソッドの呼び出しに応じて、存在する三者ライブラリ(と、表示すべてのフレームのボタンをディスプレイライブラリーの三者方法をキャンセル8.3)。
、その後、(プログラムの再開)F9を押して、あなたが見ることができる、コールスタック法上のロールバック、右クリックを選択し、ドロップフレーム(図8.4)を選択し、この方法でメソッド呼び出しに頼る第二の方法プログラムは、ブレークポイントの処理に移行します。
しかし、もう一つ注意すべきは、ブレークポイントが変更されたロールバック処理について、前/データ特定のパラメータの状態テイクを再唯一できることは、データベースのデータを、このようなオブジェクト、コレクションとして、前の状態にフォールバック更新することができませんように。
図[8.2]
図[8.3]
図[8.4]
IX。デバッグ割り込み
デバッグしたい場合には、割り込み要求は、プロセスの残りの部分を歩いてませんか?
しばらくして、私たちは、入ってくるパラメータは、間違っているプロセスを残したい見て、どのようにそれは(あなたがそれを処理するデータを...削除するデータベースの後ろに)、あなたがプログラムを再起動するサービスをシャットダウンしたくない、この要求を中断しますか?ああ、私はとても乾燥しているために使用されます。
むしろ、私は(サービスシャットダウンを除く)直接割り込み要求への道を見つけるが、9.1に示すように、フォローアップのプロセスを回避するために押し戻されるフォース戻り、によってませんでした。
そう、ここに私の直接の戻り結果は、リターンを強制的にありませんので、後続のプロセスがあること、フォース戻り、戻り値ポップアップウィンドウ、地図のための私のメソッドの戻り値の型をクリックします。それとも、新しいHashMapの<>()することができます。
[図9.1]
[図9.2]
この記事は、-httpsから再生されます。//www.cnblogs.com/chiangchou/p/idea-debug.html