JavaのJVMTIは-Xdebug -Xrunjdwpと一緒に動作しません。
質問
私は、Eclipse TPTPメモリを設定しようとしている最後の4時間を費やし (すなわちないでリモートで実行されなければならないTomcatインスタンス上でプロファイリング Eclipseの)。これは、TPTPとエージェントに応じて可能なはずです コントローラのドキュメントます。
私は自分のEclipse(ガリレオ)にTPTPコンポーネント(4.6.0)をインストール Agent Controllerのと一緒に作業台によれば、 ウェブサイト上の指示。エージェントを有効にするには、私が追加しました
:Tomcatインスタンスを起動するコマンドラインに以下のオプション-agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf:allocsites=true
とPATHの前に次のディレクトリを追加します:
D:\dev\tools\ac\plugins\org.eclipse.tptp.javaprofiler
D:\dev\tools\ac\bin
起動しようとTomcatの私は一貫して、次のエラーを得た。メッセージます:
ERROR: JDWP unable to get necessary JVMTI capabilities. ["debugInit.c",L279]
私は、グーグルの多くをしましたが、関連は何も見つかりませんでした。私は試した TPTPとのAgent Controllerのさまざまなバージョンを再インストールします。
最後には問題は、私はTomcatを起動していることであることが判明しました catalina.batがに変換「JPDA」オプションと
-Xdebug -Xrunjdwp:transport=.....
「JPDA」コマンド引数を削除するには、JVMTIが作業を開始させました。
SO、質問は:私は私の検索のいずれかの間には何も見つかりませんでした JVMTIエージェントは、デバッグと互換性がないことを示しています。できる 誰かが何が起こっているかを説明し、なぜJVMTI + JDWPは有効ではありません セットアップ?
解決
答えのいずれもが、今のところ正しいません、これは、クエリエラーが言及した場合、Google上に来る最初のヒットで、私はいくつかの明確化が必要とされている感じるので。
JVMTIとJDWPは、の彼らは一般的に一緒に使用する必要があります実際には、一緒にの作業を行います。 ERROR: JDWP unable to get necessary JVMTI capabilities
(および/またはおそらく-Xrunjdwp
)は、よりコマンドラインで何度も指定されている場合は、-agentlib:jdwp
を取得します。それを修正するには、必ずあなただけのコマンドラインで-Xrunjdwp
または-agentlib:jdwp
の1があることを確認してください。
JVMTI(Java仮想マシンツールインタフェース)JVMDI(Java仮想マシンデバッグインタフェース)とJVMPI(Java仮想マシンプロファイリング・インタフェース)の後継です。これはJava 5で非推奨とJava 6で除去し、どちらも両方JVMDIとJVMPIの機能を組み込んだことで、デバッグとプロファイリングのためにJVMの内部を公開するAPIます。
JDWP(Javaのデバッグワイヤプロトコル)は、コマンドと応答を送信するための簡単なメカニズムを説明したプロトコルです。私の知る限りでは、それはそれでとJVMTIとのインタフェースと通信するためにJVM外に座っデバッガのための唯一の方法です。
JDI(Javaデバッガインタフェース)多かれ少なかれ透過JDWPを活かしながら、JVMTIの機能の一部を公開し、クライアント側(デバッガ側)APIです。
ボブ・ドブスの中で言及したバグする答えは誤解を招くエラーメッセージに関する、およびJVMは、それがコマンドラインで指定されるたびに一度JDWPをロードしようとしているという事実。これは、JDWPとJVMTIを一緒に使用することができない場所であればどこでも述べるません。
ここで詳細情報: https://www.ibm.com /support/knowledgecenter/ssw_ibm_i_74/rzaha/jpdebuga.htmする
他のヒント
私はあなたと同じ問題に遭遇したが、私は(JVMのバグレポートを思い付いた<のhref =「http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6354345」のrel =」 nofollowを "> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6354345 の)問題にいくつかの光を投げかけています。これは、基本的にはこれまでと同じVMに二回ロードされることを意図されていないJavaエージェントライブラリにダウンしています。吸うが、それはあなたが、同時に両方を行うことができないことをエージェントシステムの基本的な制限がありますように思えます。
私にとっては、コードブリンブリンポストと同じ問題が、彼らはそれが変数-Xrunjdwp
に隠されていたように、第2 -Xrunjdwp
があった実現しなかった重複%JAVA_OPTIONS%
は、お使いのアプリケーションサーバーの起動スクリプトを確認しただった。