上記は、2つの異なるターミナルウィンドウから別々のプロセスとしてjava
開始することで実現できます。jdb
したがって、これらのコマンドをそれぞれ独自のウィンドウで実行します。
java -d32 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5463 -classpath . MainClass
jdb -attach 127.0.0.1:5463
1つ目は、アプリケーションのJVMを起動しますが、作成後すぐに一時停止します。2つ目は、デバッガーを起動し、作成したばかりのJVmにアタッチします。次にrun
、その2番目のウィンドウに入力して、アプリケーションを起動できます。追加のボーナスとして、アプリケーションとデバッガーからの出力は、それぞれに独自のウィンドウがあるため、混合されません。
参考資料:jdb
ヘルプには可能なコマンドライン引数がリストされており、 JPDAにはトランスポートに関するセクションがあります。
上記は私にとってはうまくいきますが、より簡単な解決策を提供する他の回答を歓迎します。できれば単一のコマンドとして、および/または任意の方法でポート番号を選択する必要はありません。共有メモリコネクタがJVMで機能しないようです。