他の言語で読む: English Español 中文
一般的なデバッグ シナリオでは、ブレークポイントを設定して、プログラムをいつ一時停止するかをデバッガーに指示します。ブレークポイントは通常、さらなる調査の開始点をマークする瞬間に対応します。
ブレークポイントをどこに設定するかを決めるのは難しい場合があります。正確な行が不明瞭な場合や、特定のコードではなく時間に基づいてプログラムを一時停止したい場合があります。
この記事では、IntelliJ IDEA の プログラムの一時停止 機能について説明します。これは、上記のシナリオを含むいくつかのシナリオで非常に強力な、あまり知られていないデバッグ手法です。その使用例と制限について説明し、その秘密を段階的に発見していきます。
一時停止とは何ですか?
一時停止プログラム は、任意の時点でアプリケーションを任意に一時停止できる IntelliJ IDEA デバッガーの機能です。さらに、アプリケーション コードを知る必要さえありません。実際、無視しても問題ありません!
プログラムを一時停止するには、デバッガー ツールバーの プログラムの一時停止 をクリックします。その後、プログラムは実行の途中で停止します。
制限事項
一見すると、一時停止されたプログラムは、ブレークポイントで一時停止されたプログラムとまったく同じように見えるかもしれません。ただし、これはある程度までは真実です。
一時停止プログラムは、一種のスレッドダンププラスと考えるのが正しいでしょう。通常どおり、変数とスレッドの両方を検査できます。ただし、式の評価 などの一部の高度な機能は動作しません。
ユースケース
プログラムの一時停止を使用する方法は無数にあります。多くの場合、従来のブレークポイントと同じ意味で使用できます。ただし、プログラムの一時停止 を使用する方がより適切なアプローチであるシナリオもあります。それらのいくつかを考えてみましょう。
反応しないアプリ
ユーザー インターフェイス (UI) のフリーズが発生した場合、通常は UI スレッドがブロックされていることが原因です。
Pause Program を使用すると、アプリケーションが応答しないときに一時停止して、UI スレッドの呼び出しスタックを調べることができるため便利です。通常、問題を診断するにはこれで十分です。
フォントが見つからない
前述したように、プログラムの一時停止 を使用すると、ソース コードが見つからない可能性があるため、単に無視することができます。このシナリオはあまり一般的ではありませんが、このシナリオに遭遇した場合、ブレークポイントは役に立ちません。
ここで 一時停止プログラム の出番です!
ロック
デッドロックやライブロックなどの同期の問題が疑われる場合は、プログラムの一時停止を使用すると、問題の原因となっている正確なスレッドとロックを見つけることができます。
この場合は、プログラムを一時停止してスレッド リストを調べてください。どのスレッドがブロックされているかが表示されます。実行ポイントに移動すると、ロックされている重要なセクションも表示されます。この情報は、解決策に導くのに役立ちます。
秘密のステップバイステップのヒント
前に述べたように、プログラムの一時停止 により、デバッガーの高度な機能の一部へのアクセスが制限されます。アプリケーションの一時停止中に特定の機能を使用しようとすると、一時停止アクションの後にメソッドを評価できませんというエラー メッセージが表示されたことがあります。
ただし、この制限を回避する近道があります。
アプリケーションを一時停止した後、アクションを段階的に実行し続けます。 ステップイン または ステップオーバー で十分です。これが完了すると、ブレークポイントを使用してアプリケーションを一時停止する場合と同様に、通常のデバッグ セッションが開始されます。すべての高度な機能がロック解除されました!
結論
今日はここまでです!これらのヒントやテクニックがお役に立てば幸いです。
デバッグとプロファイリングに関連する他の記事に興味がある場合は、私の他の記事をいくつかチェックしてください:
- Debugger.godMode() – デバッガーを使用して JVM アプリケーションをハックします
- デバッガーの遅さのトラブルシューティング
- 非アクティブなアプリケーションのデバッグ
- createDirectories() の何が問題ですか? - CPU プロファイル ガイド
Java でのデバッグに関して特に取り上げてほしいことがあれば、遠慮なくご連絡ください。あなたの意見は、あなたにとって最も興味深いコンテンツに優先順位を付けて公開するのに役立ちます。
以上がブレークポイントを使用しないデバッグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール
