これは、アプリケーションの欠陥を特定して解決するのに役立ちます。この記事では、Java アプリケーションをデバッグするために一般的に使用される開発ツールである Eclipse を使用します。ただし、ここで紹介するデバッグ方法は基本的に汎用的なものであり、NetBeans IDE にも適用できます。ここではランタイムに焦点を当てます。
始める前に、「Eclipse ショートカット」の記事を読むことをお勧めします。これは非常に便利です。この記事では、Eclipse Juno バージョン (Eclipse 4.2) を使用します。始める前に 3 つの提案をしたいと思います。
System.out.println をデバッグ ツールとして使用しないでください。関連するすべてのコンポーネントのログ レベルを有効にし、ログ アナライザーを使用してログを読み取ります。
1.条件付きブレークポイント
ブレークポイントの追加方法がわからない場合は、左側のパネル (行番号の前) をクリックするだけでブレークポイントが作成されます。デバッグ インターフェイスの「ブレークポイント」ビューには、作成されたすべてのブレークポイントがリストされます。ブール条件を追加できます。つまり、ブレークポイントがアクティブになり、ブール条件が true の場合はブレークポイントが実行され、それ以外の場合は実行がスキップされます。
2.例外ブレークポイント
ブレークポイントビューにJ!マークのボタンがあります!このボタンを使用して、Java 例外ブレークポイントを追加できます。たとえば、プログラムで NullPointerException が発生した場合でもデバッグを継続できるようにしたい場合は、このボタンを使用して例外ブレークポイントを追加できます。
3. モニタリングポイント
これは、選択したプロパティがアクセスまたは変更されたときにプログラムの実行を停止し、デバッグを可能にする非常に優れた機能です。 「アウトライン」ビューでクラス変数を選択し、コンテキスト・メニューから「ウォッチポイントの切り替え」を選択すると、属性ウォッチポイントが作成され、すべてのウォッチポイントが「ブレークポイント」ビューにリスト形式で表示されます。
4.評価・検査
Ctrl+Shift+D または Ctrl+Shift+I を押して、選択した変数または式の値を表示します。変数または式に永続的なウォッチポイントを追加することもできます。プログラムのデバッグ時に、これらのウォッチポイントが式ビューに表示されます。
5. 変数値を変更する
デバッグ中に変数値を変更できます。まず変数を選択してから、「変数」ビューに入り、変数のタイプに応じて、対応する「値」列に値を入力します。
6. Main関数で実行を停止します。
実行/デバッグ設定では、構成編集ダイアログボックスに「メイン」タブがあり、「メインで停止」チェックボックスをチェックできます。選択すると、main メソッドに基づいて Java プログラムをデバッグするときに、プログラムは main メソッドの最初の行で実行を停止します。
7. 環境変数
システム プロパティに環境変数を追加する代わりに、[構成の編集] ダイアログ ボックスで環境変数を簡単に追加できます。
8.フレームにドロップ
これも私のお気に入りの機能の 1 つです。デバッグ中に、呼び出しスタック フレームの先頭にジャンプして戻ることができ、変数値は先頭に戻ります。この関数の主な目的は、ロールバックに応じてすべての変数の状態をメソッドの実行開始時の状態に戻すことです。その後、何度でも再実行できます。ただし、必要な場合は何度でもデバッグできます。ただし、データベースに挿入されたデータを削除できないなど、実行プロセス中にいくつかの副作用も発生します。
9. 配信フィルタリング
(F5) メソッドに入ると、その外部ライブラリ (java.* など) にアクセスすることもできます。このライブラリは必要ない場合があるため、このパッケージを除外するフィルタを [Perference] タブ ページに追加できます。
10. 入って、出て、戻る
これは最後のポイントとして残しておきます。デバッグ中に理解する必要がある (そしてできれば習得する) 必要があるのは次のとおりです。
F5 - Enter: 次のステップに移動します。 現在の行にメソッド呼び出しがある場合、コントロールは呼び出されたメソッドの最初の行にジャンプして実行します。
F6 - ジャンプアウト: 次の行に移動します。現在の行にメソッド呼び出しがある場合は、次の行に直接移動して実行されます。呼び出されたメソッド本体には入りません。
F7 - Return: 現在のメソッドを終了し、実行を続行します。
F8——実行のために次のブレークポイントに移動します。