実行中の JVM インスタンスでデバッグを有効にするプログラム的な方法はありますか? 実行中の JVM、デバッグ サーバーを作成する API を探しています。API は同等のことを行います。
-Xdebug -Xrunjdwp:transport=dt_socket,address=<host:port>,server=y,suspend=n.
質問者さんが参考にしているデバッグポートは、Eclipseデバッガなどでソースコードをデバッグするためのものです。VisualVM のポートは JMX ポートであり、異なる JVM オプションのセットを使用します。ただし、例外もあります。JRockit の Mission Control は、JMX ポートではなく jdwp ポートを使用します。
はい、JMX デバッガーをコードで動的にロードできます。複雑ですが、OSGIはこれを動的にロードできると思います。 たとえば、これを行う Jetty プロジェクトへの参照を次に示します。
Visual VMを使用して、実行中の任意の JVM に接続できます。必ずバージョン 1.3.2 をダウンロードし、すべてのプラグインをインストールしてください。
これは不可能です。JVM は、デバッグ モードであることを最初から認識している必要があります。実行は少し遅くなりますが、外部プロセスにデバッグ情報とブレークポイントを提供します。これは、JVM が既に開始されている場合には不可能です。