問題タブ [jvmti]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ネイティブコード用のpythonデバッガインターフェース?
JVM Tool Interface APIと同様にインプロセスで実行される Python 用のデバッグ ツールを作成する方法はありますか? 私が遭遇したすべての Python デバッガーは、実際には Python のイントロスペクション ユーティリティを介して実装されているようです (つまり、デバッガー自体は、デバッグ中のプロセス内で実行される Python で記述されています)。それが唯一の方法ですか?
編集: PHP は、Xdebug などの動的にロードされるデバッグ/プロファイリング ツールを関連付けることができる同様のインプロセス C バインディングも提供しているようです。これらのバインディングを使用するライブラリはzend_extension
s と呼ばれます。
jvm - 現在のマシンで実行中のjvmを取得する方法
想像してみてください: 2 つの Java プロジェクトが JDK1.5 と JDK1.6 で動作し、2 つの Java プロジェクトが JDK 1.7 で動作します。実行中のjvm名、pid、およびプロジェクト名を取得する方法はそれで機能します。
結果は次のようになります。
pid 1234、projec_tname prj1、java_version JDK1.6
pid 4354、projec_tname prj2、java_version JDK1.5
pid 6234、projec_tname prj3、java_version JDK1.7
pid 9034、projec_tname prj4、java_version JDK1.7
現在のマシンで JVM を検索する Java ライブラリはありますか? の解決策 実行されていない現在のマシンでJDKを見つけます。私の質問には助けられません。何か案は?
java - クラスを再定義しようとすると、クラスの再定義に失敗しました
行の前に sleep() を呼び出すなど、クラスを動的に変更しようとしていました。メソッドを使用して実行時にエージェントを jvm にアタッチしましたAttach
。次に、jvm からターゲット クラスを取得し、それを変更しました (呼び出す行を追加しますsleep()
)。そして、クラスエラーを再定義しました。私はJDK1.6を使用しています。クラスを変更するために ASM コア API を使用しています。エラー:
ASM コードに何か問題がありますか? 実際、私のASMコードはその仕事を終えました(呼び出す行を追加するためsleep()
)。現在のjvmは再変換クラスをサポートしていませんか? 実行に失敗したようretransformClasses()
です。retransformClasses()
ASM 操作 (メソッドに行を追加して呼び出す) をサポートしていませんかsleep()
? 何か案は?どうも
編集: 変更したいクラス:
私のASMコード:
java - jvm がプロジェクトをロードする方法 (その中の多くのクラス)
多くのクラスを含むプロジェクトをjvmロードする方法は? jvm にはプロジェクト全体のクラス マップがありますか。これらのクラスのマップをjvmで取得するにはどうすればよいですか? クラスがjvmにロードされていないか、ジョブが終了して終了していても、いつでもjvmからこのプロジェクトのクラスを取得できますか? 開始前にクラスをロードし、クラスが実行されている間にクラスを取得することが可能であることは知っていますが、それは終了します。参考文献はありますか?御時間ありがとうございます。
jvm - クラスを実行しているすべての JVM を検査するための Java エージェント?
私はBCIとJavaAssistに関する学術プロジェクトを試みています。誰かがこれらのことで私を助けてくれたらうれしいです:
現在JVMで実行されているすべてのクラスを検査/制御できるJavaエージェントを構築することは可能ですか?
メインのJavaオブジェクトがまだ実行されている間に、これらのサブオブジェクトがその場で動作を動的に更新できるように、Javaオブジェクトをオブジェクト(サブオブジェクト)の複合体として構築することは可能ですか?
java - クラスを再変換しようとすると「UnsupportedOperationException」が発生しました
JDK1.6、jvm にロードされたクラスを動的に変更します。コードにコメントを付けると: classReader.accept(classAdapter, ClassReader.SKIP_DEBUG);
、例外が"UnsupportedOperationException"
消えます。実際、コードをテストするために、フィールドやメソッドを変更しませんでした。"UnsupportedOperationException"
しかし、プログラムは を呼び出した後に例外をキャッチしますretransformClasses()
。誰にも同様の例外がありますか?アドバイスをいただけますか?thx コードは次のとおりです。
| |
java - 致命的なエラーjvmti.hを修正する方法そのようなファイルまたはディレクトリのコンパイルはcコードubuntuを終了しませんか?
致命的なエラーjvmti.hを修正する方法そのようなファイルまたはディレクトリのコンパイルはcコードubuntuを終了しませんか? 私のCコードは次のとおりです。
「jvmti.h」を含める
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) {
/* 成功を示すために JNI_OK を返します */ printf("\nmy name is,\n\n");
JNI_OK を返します。
}
JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm) { }
ターミナルで次のコマンドを入力します: gcc -Wall -W -Werror first_agent.c -o firstagent
first_agent.c:1:19: 致命的なエラー: jvmti.h: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。
ここで、Java jdk バージョン javac 1.7.0_25
gcc バージョン gcc バージョン 4.7.3 (Ubuntu/Linaro 4.7.3-2ubuntu4)
ここで gcc のバージョンを 4.8 に更新する必要がありますか?
java - 同じプラットフォームに jre の 2 つ以上の異なる実装がある場合はどうなりますか?
私のシステムには 2 つの jre バージョン (1.3 と 1.5) がインストールされており、Internet Explorer を介していくつかの Java アプレット プログラムを実行しようとしています。私が知りたかったのは、アプレット プログラムの実行時に使用する jre のバージョンを Web ブラウザがどのように選択するかということだけです。