他の言語で読む: English Español 中文
一般的なデバッグ シナリオでは、ブレークポイントを設定して、プログラムをいつ一時停止するかをデバッガーに指示します。ブレークポイントは通常、さらなる調査の開始点をマークする瞬間に対応します。
ブレークポイントをどこに設定するかを決めるのは難しい場合があります。正確な行が不明瞭な場合や、特定のコードではなく時間に基づいてプログラムを一時停止したい場合があります。
この記事では、IntelliJ IDEA の 一時停止プログラム 機能について説明します。これは、上記のシナリオを含むいくつかのシナリオで非常に強力な、あまり知られていないデバッグ手法です。その使用例と制限について説明し、その秘密を段階的に発見していきます。
一時停止プログラム は、任意の時点でアプリケーションを任意に一時停止できるようにする IntelliJ IDEA デバッガーの機能です。さらに、アプリケーション コードを知る必要さえありません。実際のところ、無視しても問題ありません!
プログラムを一時停止するには、デバッガー ツールバーの プログラムの一時停止 をクリックします。その後、プログラムは何をしていても途中で停止します。
一見すると、一時停止されたプログラムは、ブレークポイントで一時停止されたプログラムとまったく同じように見えるかもしれません。ただし、これはある程度までしか当てはまりません。
一時停止プログラムは、スレッド ダンプ プラスの一種であると考えるのが正しいでしょう。通常の方法で変数とスレッドの両方を検査できます。ただし、Evaluate Expression などの一部の高度な機能は動作しません。
プログラムの一時停止を使用する方法は無数にあります。多くの場合、従来のブレークポイントと同じ意味で使用できます。ただし、Pause Program を使用する方が適切なアプローチであるシナリオもあります。それらのいくつかを考えてみましょう。
ユーザー インターフェイス (UI) のフリーズが発生した場合、通常は UI スレッドがブロックされていることが原因です。
Pause Program は、応答しない間にアプリケーションを一時停止し、UI スレッドのコール スタックを調べることができるため、この場合に役立ちます。通常、問題を診断するにはこれで十分です。
前述したように、プログラムの一時停止を使用すると、ソース コードが見つからない可能性があるため、単に無視することができます。このシナリオはあまり一般的ではありませんが、遭遇した場合、ブレークポイントは役に立ちません。
ここで一時停止プログラムの出番です!
デッドロックやライブロックなどの同期の問題が疑われる場合は、プログラムの一時停止を使用すると、問題の原因となっている正確なスレッドとロックを見つけることができます。
この場合は、プログラムを一時停止してスレッド リストを調べてください。どのスレッドがブロックされているかが表示されます。実行ポイントに移動すると、ロックされている重要なセクションも表示されます。この情報は、解決策に導くのに役立ちます。
前に述べたように、プログラムの一時停止により、デバッガーの高度な機能の一部へのアクセスが制限されます。アプリケーションの一時停止中に特定の機能を使用しようとすると、一時停止アクションの後にメソッドを評価できません。
というエラー メッセージが表示されたことがあります。ただし、この制限には近道があります。
アプリケーションを一時停止した後、アクションを段階的に実行し続けます。 ステップインまたはステップオーバーで十分です。これが完了すると、ブレークポイントを使用してアプリケーションを一時停止する場合と同様に、通常のデバッグ セッションが開始されます。すべての高度な機能がロック解除されました!
今日はここまでです!これらのヒントやコツがお役に立てば幸いです。
デバッグとプロファイリングに関連する他の記事に興味がある場合は、私の他の記事をチェックしてください:
Java でのデバッグに関して特に取り上げてほしいことがあれば、遠慮なくご連絡ください。あなたの意見は、あなたにとって最も興味深いコンテンツに優先順位を付けて公開するのに役立ちます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3