ほとんどの場合、コードを作成することに加えて、プログラマーはコードのデバッグに多くの時間を費やします。コードをデバッグするか、コードをデバッグしようとしているとさえ言われています。 :)
今日は、デバッグコードのヒントと、IDEが提供するデバッガーを使用するときに問題をすばやく見つけるためのいくつかの方法について説明します。
これを見ている友人は、私をすぐにタイトルパーティーと考えないでください。見てみましょう。より良いスキルがある場合は、メッセージを残してください。
トピックにアクセスしましょう。
1マルチスレッドデバッグ
あまりにも多くのスレッドアプリケーションを開発した友人は理解する必要があります。時には、複数のスレッド間の変数の異なる状態とロックの取得を観察するために、コードをデバッグするためのブレークポイントを追加することを考えます。
ブレークポイントがIDEで停止したら、互いに影響を与えることなく別のスレッドに切り替えて他のコードを実行できます。もちろん、ここにはスイッチがありますが、これはデフォルトでEclipseでオンになります。
ただし、Intellijのアイデアではデフォルトでは有効にされていません。つまり、アイデアのコードにブレークポイントを追加すると、1つのスレッドが故障しますが、他のスレッドはすでに実行されています。
スレッドの中断をEclipseモードと同じに設定した後、マルチスレッドアプリケーションのデバッグも開始できます。
単純な設定はブレークポイントに直接存在し、サスペンドをスレッドに変更できます
アイデアのデフォルト設定を変更する:「スレッド」ラジオボタンに切り替え、[ボタンをクリック]表示
スレッドが壊れた後、スレッドウィンドウを切り替えて、他のスレッドで実行を続けることができます。
Intellijのアイデアでここに切り替えます
メインスレッドとPool-1-Thread-1の両方が実行状態にあることがわかり、いずれかに切り替えることが続くことができます。
現時点では、マルチスレッドアプリケーションを作成し、Arrylistなどの非スレッドセーフコンテナにコンテンツを保存し、スレッド非Safeである理由と鮮やかで鮮やかな問題が発生する理由を観察できます。
PS:ここで教えてください。これが、少なくとも認識可能な名前であるスレッドを作成するときに意味のある名前を付けることをお勧めします。それ以外の場合は、どのスレッドがあなた自身のものであるかを区別することはできず、切り替えるのは面倒です。
2バックエキシート
ここで言及した後方の実行は、コードをデバッグすると、各方法が怠zyで、段階的なデバッグに入ることがあります。変数値の変更を観察すると、特定の方法はフォローアップせず、値が変化し、再度行う必要があります。
後方実行の機能に依存すると、チェスをするときにチェスを後悔する機能のように、後方を後方にすることができます。もちろん、このバックオペレーションの名前は私自身によって名前が付けられており、IDEのドロップフレームと呼ばれています。
この関数を使用すると、現在のフレームをドロップした後、変更された変数値は復元されません。たとえば、リストを現在呼ばれているメソッドに渡し、メソッドのリストにコンテンツを追加する場合、メソッドが呼び出される場所にドロップすると、リストは以前の状態に戻りません。
ただし、メソッドが再度呼び出されると、リストが変更されたときに観察できます。少なくともプログラムを再度実行する必要はありません。あなたが同意しないなら、あなたも退却することができます。
3つの条件付きブレークポイント
コードをデバッグするには、変更を観察する場所にブレークポイントを追加し、段階的に段階的に実行する必要があります。
ただし、ループ内にある場合、またはメソッドが複数のスレッドで同時に呼び出された場合、慎重に踏み込んで、気にしないコンテンツがなく、ループの先頭から走り去りますが、まだコンテンツがない場合は動揺し始めます。
実際、ブレークポイントを追加すると、特定の条件をブレークポイントに追加できるため、指定された条件が満たされた場合にのみブレークポイントが有効になります。
Intellijのアイデアでは、ブレークポイントを右クリックすると、下の図の条件ボックスがポップアップし、指定された条件を入力します。
条件付きブレークポイントを使用すると、無関係のコードで直接スキップできます。
4フラグメントコード
これを表現する名前については考えていませんでした。デバッグプロセス中に、私は突然、これに関連するコードを楽しませたいと思っていますが、ソースファイルではなく、問題の分析を支援するために観察します。この時点で、プログラムを停止し、コードを追加して再度実行しますか?
IDEAには、現在のコードのコンテキスト内で一時的に記述するコードを実行できるコードスニペットを実行する機能があります。
たとえば、現在の方法はリストに渡されますが、この方法には、後続の条件で使用する必要がある要素がありません。この時点で、フラグメントコード実行の関数を一時的に使用して、1つ追加できます。
Intellijのアイデアでは、上のボタンは小さな計算機のように一時的な関数であることに注意してください。クリックすると、ボタンの下にある式(Ctrl+F8)を評価するボックスがポップアップします。コードを入力し、右下隅の評価をクリックします。返品値は結果に表示されます。
これは、変数のコンテンツを一時的に変更することと同等です。
次に、オブジェクトのメソッドを呼び出したり、関数を実行したり、属性値を取得したりすることもできます。
5変数の変更値を表示します
各IDEは、コードをデバッグするときに現在のコンテキスト変数値を観察するためのウィンドウを提供します。実際、視聴に加えて、いくつかの非ファイナルの基本タイプもここで直接変更できます。このようにして、複数のループが実行された場合、毎回期待値を復元でき、プログラムを再起動する必要はありません。
一般的に使用されるコードは、ショートカットキーを自動的に完了します
| ショートカットキー | 説明します |
|---|---|
| 気が狂う | System.out.println( ""); |
| PSVM | 主な方法 |
一般的な設定
一般的に使用されるショートカットキー
| ショートカットキー | 説明します |
|---|---|
| alt + ctrl + s | 設定を開く |
| Alt + Ctrl + Shift + S | オープンプロジェクトStructrue |
| alt + Enter | クイックフィックス |
| alt + / | 自動単語の完了 |
| alt +挿入 | セッター、ゲッター、トストリングなど、自動的に生成されます。 |
| alt + shift + v | クラスのメンバーを別のクラスに移動します |
| Ctrl + Shift + f | フォーマットコード |
| Ctrl + Shift + u | ケースの切り替え |
| Ctrl + Shift + i | 現在のコンテキストに従ってコードの定義を表示します。たとえば、メソッドのカーソルが停止した場合、メソッドの定義はPopupViewの方法で表示されます。 |
| Ctrl +クリック | ソースコードにジャンプします |
| シフト +シフト | すべてのファイルを検索します |
| Ctrl + e | 最近のアクセスファイルのリストを開きます |
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。