典型的な引数でコードの実行を開始します。
Java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 myPackage.myMainClassname
アプリケーションが起動し、「listen for transport dt_socket at address:5005」を出力して、さらに進んでいきます。接続を待つ試みなし。実行中に接続でき、デバッグ自体が機能します。しかし、なぜアプリケーションはデバッガからの接続を待たないのですか?
構成に問題があるようですが、根本的な原因を特定できません。私はいくつかの方法でデバッグ設定を指定し、異なるポートを指定し、管理者として実行し、ファイアウォールをオフにしました。
接続を待機する場合は、suspend=y
を指定する必要があります。デバッグは機能しています。接続しようとすると、接続できるようになります。ほとんどの場合、接続が確立されるまでブロックするsuspend=y
を使用することに慣れているだけです。
suspend=n
の場合、動作は予期されています。
メニュー「構成の実行/編集」を選択します。チェック:「構成の編集」ダイアログがポップアップします。 「+」アイコンをクリックし、リストから「リモート」を選択します。チェック:「名前なし」という名前の新しい設定が「リモート」カテゴリに表示されます。構成名を「リモートデバッグ」などのわかりやすい名前に変更します。他のパラメータは変更せず、「OK」をクリックしてください。
デバッガーの下でWebアプリケーションを実行する
IntelliJ IDEAでGradleタスク「appStartDebug」を開始します。注意:デバッガーの下でこのタスクを開始しようとしないでください。通常モードで実行します。チェック:「実行」出力ウィンドウに「listen for transport dt_socket at address:5005」が表示されるはずです。メニュー「実行/実行...」を選択し、「リモートデバッグ」構成を選択し、「デバッグ」コマンドを選択します。チェック:「デバッグ」出力ウィンドウに「ターゲットVMに接続されました、アドレス: 'localhost:5005'、トランスポート: 'socket'」が表示されます。
これで、Webアプリケーションがデバッガーの下で実行されています。ブレークポイントを設定したり、変数を監視/検査したりできます。