開発者として、開発環境でデバッグスキルを習得する必要があります。 Javaプログラムを書くとき、私たちはしばしばさまざまな不可解な問題に遭遇します。プログラムの問題がある場所を検出するには、変数の値を確認するためにログを追加する必要があるため、デバッグは非常に厄介です。アプリケーションのデバッグに1日1時間を費やすと、蓄積すると多くの時間がかかるとします。このため、この時間を使用して、私たちがより便利にデバッグするすべての機能を大切にし、理解してください。それはあなたに時間を節約することができ、またあなたの人生をより快適でリラックスさせることになります。
1。デバッグビュー
デバッグで最も一般的に使用されるウィンドウは次のとおりです。
| ウィンドウ | 説明します |
|---|---|
| デバッグウィンドウ | 主に、現在のスレッドメソッドコールスタックとコードの行数(デバッグ情報付きのコード)を表示します |
| ブレークポイントウィンドウ | =>ブレークポイントリストウィンドウは、ブレークポイントの追加、ブレークポイントの条件の設定、ブレークポイントの削除などを容易にすることができます。 |
| 変数ウィンドウ | =>現在の方法のローカル変数を表示すると、このアプリケーションを含む非静的な方法では、変数の値を変更および変更できます |
| コード編集ウィンドウ | =>言うまでもない |
| 出力コンソールウィンドウ | =>ログおよびその他の出力コンテンツ。デバッグ中に、コンポーネントレベルの注意を少し低く設定して、複数の出力情報を取得できます。 |
さらに、補助ウィンドウは次のとおりです。
| ウィンドウ | 説明します |
|---|---|
| 式式式ウィンドウ | =>監視する必要があるデータの式を書くか、メーターの値を変更する必要があります |
| ウィンドウを表示します | =>ディスプレイでコードブロック、出力コンテンツなどを実行できます |
| アウトラインアウトラインウィンドウ | =>現在のクラスのメソッド、変数などを見る |
| 階層ウィンドウを入力します | =>実装インターフェイスとクラス継承レベルを含む、現在のクラスの継承レベルを確認してください |
| メソッドコール関係コール階層ウィンドウ | =>どのメソッドが呼び出されるか、どのクラスが呼び出され、どの行が対応するメソッドが直接開くことができますかを確認します |
| 検索結果検索ウィンドウ | =>ショートカットキーを組み合わせて、ワークスペース、プロジェクト、および作業セットで参照または定義されているコードの場所を表示できます。 |
1)ウィンドウの完全なビュー:
2)デバッグビュー(スレッドスタックビュー):
デバッグビューを使用すると、デバッグされているプログラムを管理し、ワークベンチで実行できます。デバッグするプログラムに吊り下げられたスレッドのスタックフレームが表示され、プログラム内の各スレッドがツリーのノードとして表示されます。彼は、実行中の各ターゲットのプロセスを示しています。スレッドが吊り下げられている場合、そのスタックフレームは子要素として表示されます。一般的に使用されるデバッグボタンは次のとおりです。
1.現在の実装が次のブレークポイントまで実行され続け、ショートカットキーはF8であることを示します。
2。プロセス全体を中断することを意味します
3.現在の方法を入力することを意味し、ショートカットキーはF5です。
4.次のコード行を実行することを意味し、ショートカットキーはF6です。
5.現在のメソッドを終了し、呼び出しレイヤーに戻ることを意味します。ショートカットキーはF7です。
6.現在のスレッドのスタックを表し、そこからどのコードが実行されているか、呼び出しプロセス全体、およびコードの行番号を確認できます
詳細な紹介:
すべてのブレークポイントをスキップします:すべてのブレークポイントをスキップして設定します。すべてのブレークポイントをスキップした後、すべてのブレークポイントにスラッシュが行われ、ブレークポイントがスキップされ、ブレークポイントでスレッドが中断されないことを示します。
ドロップツーフレーム:このコマンドにより、プログラムは現在のメソッドの先頭に戻り、再度実行を開始できます。 Javaスタックフレームを再測定できます。指定されたスタックフレームを選択し、[ドロップ]をクリックしてフレームをクリックして、指定されたスタックフレームに再入力できるようにすることができます。ドロップを使用してフレームを使用することに注意してください。
1。既に実行されているメソッドスタックのメソッドにドロップできません。
2。スタックフレームにドロップすると、グローバルデータの元の値は変更されません。たとえば、Verterを含む要素はクリアされません。
ステップフィルター:この機能は比較的簡単です。デバッグ時に注意を払わないいくつかのクラスを無視したい場合は、フィルタリングのステップフィルターを有効にすることができます。プログラムは、フィルター処理されていない位置またはブレークポイントに遭遇するまで、引き続き実行されます。ステップフィルター機能は、ステップフィルターの使用、ステップフィルターの編集、フィルタータイプ、フィルターパッケージの4つのアイテムで構成されています。特定の操作は次のとおりです。
ステップ1:Windows->設定 - > Java-> Debug->ステップフィルタリング。
ステップ2:「ステップフィルターの使用」を選択します
ステップ3:画面上の目的のオプションを選択します。独自のコードベースにコードの一部を追加できます。
ステップ4:「適用」をクリックします
原則として、編集ステップフィルターコマンドを使用してステップフィルタールールを構成し、フィルタータイプとフィルターパッケージはそれぞれフィルタリングされたJavaタイプとJavaパッケージを参照します。
ステップリターン:現在の方法からバウンスします。呼び出されたメソッドの実行中、ステップリターンを使用すると、メソッドからジャンプし、現在のメソッドのすべてのコードを実行した後にメソッドを呼び出すメソッドに戻ります。
ステップオーバー:単一のステップを実行すると、関数のサブ機能に遭遇すると、サブ機能が入力されてシングルステップを実行することはありませんが、サブ機能の実行全体、つまりサブ機能全体が1つのステップとして実行されます。
ステップイン:ステップイン:ステップイン、入力、およびサブ機能に遭遇したときにステップインを続けます。
履歴書:一時停止されたスレッドを復元し、現在の位置から次のブレークポイント位置に直接ジャンプします。
一時停止:選択したスレッドを一時停止すると、コードを閲覧または変更したり、データを確認したりできます。
Eclipseは、中断と履歴書を介してスレッドの停止と回復をサポートします。一般的に言えば、一時停止は、マルチスレッドプログラムのデバッグに適しています。特定のスレッドのスタックフレームと可変値を表示する必要がある場合、サスペンドコマンドを介してスレッドを一時停止できます。履歴書は回復に使用されます。
注意が必要な履歴書には2つのタイプがあります。
1つ目は、デバッグプロセス中にプログラムコードを変更し、保存し、履歴書をクリックすると、プログラムはブレークポイントで一時的に停止されます。
2つ目は、プログラムが例外をスローすると、履歴書を実行すると、プログラムもブレークポイントで一時的に停止されることです。
終了:Eclipseは、終了コマンドを介してローカルプログラムのデバッグを終了します。
切断:Eclipseは切断コマンドを使用して、ソケット接続をリモートJVMに終了します。
1。デバッグと実行
| マーク | 関数 | ショートカットキー | 説明する |
|---|---|---|---|
| 6.4 | ステップ情報 | F5 | - >ステップ(メソッド呼び出しがある場合、デバッグの呼び出しメソッドが入力されます); |
| 6.4 | ステップオーバー | F6 | - >段階的にスキップします(行に入らないメソッド呼び出しで、現在のコード行を直接実行して次の行にジャンプします)。 |
| 6.4 | ステップ戻り | F7 | - >単一のステップで戻ります(現在のメソッドを実行し、現在のメソッドをコールスタックからポップし、現在のメソッドが呼び出されるコールの場所に戻ります)。 |
| 6.5 | 再開する | F8 | - >通常の実行を再開します(次のブレークポイントが発生するまで)。 |
| 7.4 | ラインに走ります | Ctrl+r | - >現在のラインに実行します(中央のすべてのブレークポイントは無視され、現在のカーソルが配置されているラインに実行されます)。 |
| 6.3 | フレームにドロップします | なし | - >指定された方法の開始に戻ると、この関数は非常に良いです。 メソッドコールスタックのメソッドを右クリックし、[ドロップ]を選択して、メソッドの先頭から実行するために[フレーム]を選択します。たとえば、このメソッドを再実行します。このメソッドのドロップを使用して、このメソッドの最初の行から再拡張することができます。 もちろん、データベース操作、渡されたパラメーターのオブジェクトコンテンツの変更など、副作用を備えた方法など、必要なコンテンツのコンテンツを再実行する場合があります。 |
| 6.1+6.2 | スタックをコピーします | なし | - >現在のスレッドスタック情報をコピーします |
いくつかのクラス、パッケージなどを除外する必要がある場合は、デバッグ中に編集ステップフィルター設定を使用できます。
A6のプロパティ:コンソールスタートアップパラメーター、環境パラメーターなどを含むJavaプロセススタートアップ情報。パラメーターの起動パラメーターに問題がある場合は、最初にここの実際の起動パラメーターが間違っているかどうかを確認できます。また、デバッグをサポートする仮想マシンに関連するオプションを表示することもできます。
2。データ表示
| マーク | 関数 | ショートカットキー | 説明する |
|---|---|---|---|
| 7.4 | 検査します | Ctrl+Shift+i | - >選択した変数、式値、または実行結果を表示するには、Ctrl+Shift+iを押して、表示ウィンドウに現在の式または値を追加して表示します。 |
| 7.4 | 画面 | Ctrl+Shift+d | - >選択した変数、式値、または実行の結果を表示します。 Ctrl+Shift+Dを再度押して、表示ウィンドウに現在の式または値を追加して表示します。 |
| 7.4 | 実行する | Ctrl+u | - >選択式を実行します。 |
| 7.4 | ラインに走ります | Ctrl+r | - >現在のラインに実行します(中央のすべてのブレークポイントは無視され、現在のカーソルが配置されているラインに実行されます)。 |
| 7.3 | すべてのインスタンス | Ctrl+Shift+n | - >選択したクラスのすべてのオブジェクトを表示すると、この関数は優れています。 |
| 7.3 | インスタンスカウント | なし | - >選択したクラスのすべてのオブジェクトの数を表示します。 |
| 7.4 | 時計 | なし | - >現在の変数と式を式ウィンドウに追加します。 |
3)変数ビュー(変数ビュー)
1.変数名表示の場合、現在のコード行でアクセスできるすべてのインスタンス変数とローカル変数を表示します。
2.すべての変数値を表示します
3.このウィンドウを介して変数値を変更できます
変数ビューは、デバッグビューで選択されたスタックフレームに関連する変数情報を表示します。 Javaプログラムをデバッグするとき、変数は詳細ペインにより詳細な情報を表示することを選択できます。さらに、Javaオブジェクトには、含まれるプロパティの値も表示できます。このウィンドウで変数を選択し、右クリックして多くの操作を実行します。メイン操作は次のとおりです。
すべてのインスタンス:ダイアログボックスを開いて、Javaクラスのすべてのインスタンスを表示します。この関数を使用するには、インスタンスの取得をサポートするためにJava仮想マシンが必要です。
すべての参照::ダイアログボックスを開き、変数を参照するすべてのJavaオブジェクトを表示します。
値の変更::変数の値を変更します。この関数は、プログラムデバッグ用のドロップツーフレームと組み合わせて使用できます。再脱bugの代わりにこれら2つの関数を使用します
変数のコピー:変数の値をコピーします。特に変数の値が非常に長い場合(JSONデータなど)、この関数は役に立ちます。
検索:クラスに多くの変数がある場合、検索できます。
4)ブレークポイントビュー(ブレークポイントビュー)
1.すべてのブレークポイントを表示します
2.現在のウィンドウ1で選択したポートを無効にし、[有効にする]をクリックします。
3.Exception Breakpoint
ブレークポイントビューは、現在の作業間隔に設定したすべてのブレークポイントをリストします。ブレークポイントをダブルクリックして、プログラムのブレークポイントの場所を入力します。また、ワークグループまたはポイントヒットカウントに基づいて、ブレークポイントを有効または無効にし、新しいものを削除し、新しいものを追加し、グループ化することもできます。ブレークポイントを使用するときに非常に役立つ2つの手法があります。
ヒット数:ブレークポイントでコードセグメントが実行される回数を指定します。最も典型的なものはループです。ループが10回実行され、スレッドが吊り下げられる場合、ヒットカウント値は10で、現在のループは9番目に実行されるとハングします。
条件:名前が示すように、それは条件付き判断です。たとえば、変数i == 10をループする必要がある場合、スレッドは一時停止し、条件はi == 10に設定され、「true」の場合は[一時停止]を選択します。
ヒット数と条件の両方が上で選択されている場合、式と値の設定が不合理である場合、無効になります。値が変更されたときに一時停止を選択すると、変数値が変更されたときに条件付きが垂れ下がる可能性があります。
5)式ビュー(式ビュー)
1。式
2。ここをクリックして新しい式を追加してください
デバッグパースペクティブの編集者で式の値を見つけるには、ブレークポイント設定のある行全体を選択し、コンテキストメニューで検査オプションを選択します。式は現在のスタックフレームのコンテキストで評価され、結果は表示ウィンドウの式ビューに表示されます。たとえば、変数A+Bの値を計算する場合、式ビューに式を追加できます。A+B
6)表示ビューを表示します
このビューを使用して、新しいコードを入力または計算できます。このコードは、現在のデバッグの場所のコンテキストで実行されます。つまり、すべての変数、さらにはコンテンツアシスタントを使用できます。コードを実行するには、マークを付けて右クリックメニューまたはCtrl+U(実行)またはCtrl+Shift+I(チェック)を使用します
7)補助ウィンドウのコード表示
1。コードビュー:
特定のコードを表示するために使用されるコードビュー。緑の部分は、現在実行されているコードを指します
| マーク | 関数 | ショートカットキー | 説明する |
|---|---|---|---|
| 11.1〜11.5 | クイックタイプの階層 | Ctrl+t | 現在のクラスとインターフェイスの継承レベルを確認します。デフォルトで入力すると、現在のクラス/メソッドの継承/実装のサブクラスが表示され、サブインターフェイス11.1が表示されます。 Ctrl+T再び、現在のクラスとインターフェイスのスーパークラス/インターフェイス11.2継承/実装が表示されます。デバッグ中、この関数は、インターフェイスまたは抽象クラスのメソッドコールで実装クラス11.4を表示するためによく使用され、対応する実装方法11.5に直接ナビゲートします。 |
| クイックアウトライン | Ctrl+o | メソッド、属性などを含む現在のクラスの概要を確認してください。それはほとんど役に立ちません。 | |
| 宣言を開く | F3 | 変数、プロパティ、およびメソッドの定義を表示します |
2。階層ウィンドウを呼び出します:
| マーク | 関数 | ショートカットキー | 説明する |
|---|---|---|---|
| 12.1〜12.2 | オープンコール階層 | Ctrl+alt+h | レベルと呼ばれるメソッドを確認すると、現在の方法が12.1と呼ばれる場所を確認できます。 |
3。階層を入力します。ウィンドウ:
| マーク | 関数 | ショートカットキー | 説明する |
|---|---|---|---|
| 13.1〜13.4 | オープンタイプの階層 | F4 | 継承レベルを確認すると、Child Classの親クラス13.1、またはクラスによって実装されたインターフェイス継承レベル13.2など、クラスの相続レベルを表示できます。クラス13.3および13.4のアウトラインは、選択したクラス/インターフェイスに従って右側に表示されます。 13.3親クラス/親インターフェイスのプロパティ、方法などを表示するかどうかを選択できます。 |
4. [検索]ウィンドウ:
| マーク | 関数 | ショートカットキー | 説明する |
|---|---|---|---|
| 14.1 | 宣言 | Ctrl+g | 同じ方法の署名は、ワークスペースとサードパーティのjarパッケージ14.1で定義されています |
| 14.2 | 参照 | Ctrl+shif+g | 現在選択されている変数、プロパティ、およびメソッドは、ワークスペースとサードパーティのJARパッケージ14.2で参照されています |
| 14.3 | Ctrl+Shift+u | 現在のClass14.3に変数、プロパティ、およびメソッドが表示される場所を表示 | |
| 14.4 | 実装 | 現在のインターフェイスを実装するクラス14.8を表示します | |
| 14.4〜14.7 | 表示方法 | さまざまな表示方法を選択して、詳細については写真をご覧ください |
2。デバッグ
1.ブレークポイントを設定します
ソースコードファイルでは、ブレークポイントを設定するコードラインの前のマークされた行で、左マウスボタンをダブルクリックしてブレークポイントを設定し、同じ位置で再びダブルクリックしてブレークポイントをキャンセルします。時々、このニーズがある場合があります。つまり、コードラインごとに実行したくありません。たとえば、forループは1,000回以上ループします。 500回目にデバッグのためにスレッドを掛けてもらいたいだけです。現時点では、条件付きブレークポイントを使用できます。条件のブレークポイントを設定します:このブレークポイントのトリガー条件を設定できます。特定の条件が満たされると、デバッグを開始できます。ブレークポイントを右クリックして[ブレークポイントプロパティ]を選択して、[ブレークポイント設定]ページに入力できます。ブレークポイントビューについて話していたとき、ヒットカウントと条件の使用を学びました。ここでは、条件と実行数を設定できます。
1.1)ブレークポイントタイプとブレークポイントウィンドウ
デバッグ中に設定できるブレークポイントには5種類があります。
1。ラインブレークポイント:条件付きブレークポイントは、名前が示すように、特定の条件を持つブレークポイントです。ユーザーが設定した条件が満たされた場合にのみ、ブレークポイントに実行されるとコードが停止します。
2。メソッドブレークポイント:メソッドブレークポイントに関する特別なことは、JDKのソースコードでヒットできることです。 JDKはコンピレーション中にデバッグ情報を削除するため、通常のブレークポイントは内部にヒットすることはできませんが、メソッドブレークポイントは可能です。このメソッドを使用して、メソッドのコールスタックを表示できます。
3。ブレークポイントを観察します(ブレークポイントメンバーの変動アクセスの変更を見る)
4.Exceptionブレークポイント
5。クラスロードブレークポイント
各タイプのブレークポイントの設定はわずかに異なります。ブレークポイント - >ブレークポイントプロパティを右クリックして設定できますが、通常、ブレークポイントウィンドウにクイック設定インターフェイスがあります。ブレークポイントプロパティにはより多くのフィルターがありますが、実際には非常に役に立たず、あまり役に立ちません。
ブレークポイント関連のショートカットキー:
| ショートカットキー | 説明します |
|---|---|
| Ctrl+Shift+b | カーソルの大きなブレークポイント/キャンセルブレークポイント |
| Ctrl+alt+b | すべてのブレークポイントを無視します |
| alt+shift+q、b | ブレークポイントウィンドウをアクティブにします |
1。ラインブレークポイント:メソッドの特定の行でのブレークポイント1.1および1.4。ラインブレークポイントは、スレッド/VM 1.3の懸濁状態とアクセス数1.2を設定できます。
1.3の条件は、SpringがBeanの定義(RegisterBeanDefinition)を登録すると、org.springframework.demo.mybeanの場合、スレッドが吊り下げられ、ステップバイステップのデバッグを開始できることです。
ヒットカウント1.2を使用するために、通常はループにあります。 NTHオブジェクトの処理に問題がある場合は、HIT count = Nを設定します。再脱bug中に、デバッグする必要があるループの数をデバッグするのを停止するのが便利です。
2。メソッドブレークポイント:メソッドのブレークポイント2.1および2.2。メソッドブレークポイントの利点は、メソッドメソッドを入力または終了するときに停止およびデバッグできることです。それらは行のブレークポイントに似ており、行のブレークポイントとメソッドブレークポイントのみが設定条件とアクセス時間の機能を備えています。
ただし、メソッドブレークポイントには別の利点があります。コードがコンパイルされている場合、指定された行のブレークポイントが機能しないため、メソッドブレークポイントのみを押すことができます。
興味がある場合は、ライン番号を追加する前にフックを取り外して、A1を介してデバッグして見てください。
3。ブレークポイントを観察します:メンバー変数でブレークポイント3.1および3.3ヒット。オブジェクトメンバー変数のみが効果があり、静的メンバー変数は機能しません。
変数にアクセスまたは設定されたときに、スレッド/VM 3.2を吊り下げるように設定できます。つまり、3.4と同様のメンバー変数にアクセスまたは設定するすべての方法が監視されます。
4。例外ブレークポイント:例外ブレークポイントを4.6から追加するか、ログ情報の例外クラス情報出力をクリックします。
例外ブレークポイント4.1。システムで例外が発生すると、スレッド/VMは、キャプチャされた例外のスロー位置またはプログラムがキャッチしない例外の位置4.2および4.4で停止され、例外を含むサブクラスが4.3および4.5も検出されるかどうかを指定することもできます。
上記の異常なサスペンションセットに加えて、Java-> DebugからのSuspenductutionを設定できます。主に2つ:
1.猛攻撃の例外で実行を中断するかどうかが発生します。デバッグ中に、デバッグに影響を与える例外サスペンドが常にありますが、例外ブレークポイントが設定されていない場合、このオプションを確認できます。
2。コンピレーションエラー中に停止されているかどうかにかかわらず、この状況は通常、コードのデバッグと変更時に発生します。
言及するもう1つのことは、メインメソッドを使用したアプリケーションが開始されることです。デバッグ構成のメインA3の停止を確認できます。プログラムが入ると、スレッドが停止され、デバッグを待っています。
5。クラスの読み込みブレークポイント:ブレークポイント5.1がクラス名にヒットしました。クラスの読み込みブレークポイントはインターフェイスで設定することはできませんが、抽象クラスは問題ありません。ただし、デバッグ中、ブレークポイントは明らかにクラスローダーを入力しません。段階的なエントリは、サブクラス建設方法に入ることが知られています。スレッドを一時停止した後、非アブストラクトクラスはクラスローダーに入ります(フィルターがフィルタリングされていない場合)5.3。クラスの読み込みブレークポイントが抽象クラスでヒットしているか非抽象クラスでヒットするかどうかにかかわらず、クラスが初めてロードされるときにスレッド/VM5.2が停止されます。または、最初のサブクラスが初めてロードされます。
2。プログラムをデバッグします
1.ローカルJava言語プログラムをデバッグします
すべてのデバッグの中で、Javaプログラムのデバッグは、主にブレークポイントの設定、デバッグの開始、ステップスルー、デバッグの終了を含む最も簡単です。
1)ブレークポイントを設定します。
2)デバッグを開始する:Eclipseは、プログラムのデバッグ(起動)、つまりメニュー(Run> Debug)、Icon( "Green Bug")、右>デバッグAS、ショートカットキー(F11)を介してデバッグを開始する4つの方法を提供します。この点で、それは他のコマンド(実行など)に似ています。
プロンプトがポップアップします。デバッグワークスペースに切り替え、「私の決定を覚えておいてください」を確認し、選択することを忘れないでください。
3)シングルステップの実行:主に上記のいくつかのビューをデバッグに使用します。その中には、デバッグビューのいくつかのボタンにはショートカットキーがあります。
ステップretuen(f7)
ステップオーバー(F6)
(f5)に足を踏み入れる
デバッグの終了:終了コマンドを介してローカルプログラムのデバッグを終了します。
2。ケース
シナリオ1:Xiao Mingは、継続的に実行されたタスクエグゼキューターを書きました。一定期間オンラインで実行した後、彼はいくつかの失敗の可能性があることを発見しました。しばらく走った後、タスクエグゼキューターは異常に終了しました。それはヌルポインターだったため、Xiao Mingはローカルでデバッグしたいと思っていましたが、ブレークポイントがどこにあるかわかりませんでした。この問題は確率的イベントであり、必ずしも表示されるとは限りません。そのため、Xiao Mingが数回デバッグされた後、彼はめまいがして、コードをはっきりと見ることさえできませんでした。 Xiao Mingは、ブレークポイントを持ち、停止し、ヌルポインターの例外が発生するたびに問題を見つけたいと考えていました。それは素晴らしいことです。
例外ブレークポイント
例外ブレークポイント:問題を見つけるプロセスでは、問題のトリガーポイントとは非常に異なる適切な位置に触れることができないブレークポイントに遭遇することがよくあります。したがって、現時点では、例外ブレークポイントを試すこともできます。名前が示すように、例外ブレークポイントとは、特定の例外をスローした後に自動的にハングするブレークポイントを指します。
赤い部分をクリックして、異常なブレークポイントを追加します
nullpointerexceptionなど、特定する例外のタイプを入力します。このようにして、システムにnullpointerexceptionの例外がスローされた後、現在のスレッドが中断され、問題を見つける機会が与えられます。
シーン2:Xiao Mingは巨大なループを書きました。コードを調整すると、Xiao Mingは、ループが100,000回目に達するたびに問題があり、彼の期待を満たしていないことを発見しました。そのため、Xiao Mingはループにブレークポイントを作り、何が起こっているのかを見たいと思っていましたが、Xiao Mingは100,000ループに到達することがどれほど難しいかを考えませんでした。この時点で、Xiao Mingはすでに多くのことを考え始めていました。
ループの数== 100000の場合、スレッドは停止します
条件付きブレークポイント
右側の写真に示されているように、1000回ループします。 500回ループするときに停止したい場合は、条件付きブレークポイントを作成し、ブレークポイントを右クリックしてブレークポイントプロパティを掛けることができます。
[条件の有効化]を選択します
空白で、独自の状態を追加します。条件がtrueを返すと、スレッドは中断されます。 falseの場合、例外は無視されます。
ブレークポイントが通過した後、ヒットカウントはスレッドを正式に一時停止します。 500に設定されている場合、最初の499回は表現され、ブレークポイントの後に停止しません。ブレークポイントが500回の場合、ブレークポイントは現在のスレッドを一時停止します。
表現
式は、問題の位置付けを容易にするために現在のコードで利用できないいくつかのコマンドラインを表示できます。
シーン3:Xiao Mingは最近問題に遭遇しました。サードパーティのプラグインを呼び出す際には、常に問題があります。 Xiao Mingは、それがサードパーティのプラグインのバグであると疑っていましたが、Xiao Mingはソースコードを見つけず、デバッグできませんでした。シャオミンは何をすべきですか?
サードパーティのプラグインをターゲットとするデバッグ
1.逆コンパイルツールを使用してコードを逆コンパイルします
2.逆コンパイルされたソースコードをフィルタリングします
3.ソースコードコンパイルエラーを修正します
4。デバッグ
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。