2011-08-03 16 views

答えて

1

と同等の処理を行います。 JVMは最初からデバッグモードであることを知っていなければなりません。これは少し遅く実行されますが、JVMが既に起動されているときは不可能なデバッグ情報とブレークポイントを外部プロセスに提供します。

+0

ダニエル、私は同意します。私はそのようなAPIがあることを望んでいた。私が達成しようとしていることについては、ターゲットJVMがまだデバッグモードではないと仮定し、そのVMをデバッグモードに切り替えるコードを実行することができます。 VMがリッスンを開始した正確なポート番号を知った後、デバッガのユーザがそのVMにデバッガを接続するために使用するよく知られた場所にその情報を書き込みます。 –

1

Visual VMを使用して実行中のJVMに接続できます。バージョン1.3.2をダウンロードし、すべてプラグインをインストールしてください。

+0

+1正解!これは少なくとも、VisualVMと同じユーザーでJVMを起動したとき(または権限が適切な場合)に機能するはずです。 – Daniel

0

質問者が参照するデバッグポートは、Eclipseデバッガなどのソースコードのデバッグ用です。 VisualVM用のポートはJMXポートで、JVMオプションのセットが異なります。ただし、例外はあります。JRockitのMission Controlは、JMXポートではなくjdwpポートを使用します。

はい、コードで動的にJMXデバッガをロードできます。その複雑なしかしOSGI私は信じてこれを動的に読み込むことができます。 For example, here is a reference to Jetty project doing this.

関連する問題