問題タブ [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.
jvmti - JVMTI を使用してオブジェクトを取得する方法
私は初めてJVMTI
です。GetObjectSize
メソッドを使用してオブジェクトのサイズを取得しようとしています。
しかし、私は立ち往生しています。
を使用してヒープ領域からオブジェクトを取得できますJVMTI
か? GetTag
これを行うために関数がどこかに関与していますか?
オブジェクトの初期化を非常に簡単に追跡できることはわかっています。しかし、特定の間隔内のオブジェクトが必要です。
どんな助けでも大歓迎です。
heap-dump - heapViewer.c(JVMTIデモ)の「(jlong)(ptrdiff_t)(void*)」の目的は何ですか?
以下はデモコードです():
SetTag のプロトタイプは です
jvmtiError SetTag(jvmtiEnv* env, jobject object, jlong tag)
。
次のように使用できます
err = (*jvmti)->SetTag(jvmti, classes[i], (jlong)(&details[i]));
か?
java - JVMTI を使用して定期的な Java スレッド ダンプを生成する方法はありますか?
Java でスレッド ダンプを生成する方法は複数あります。
実行中の JVM に対するパフォーマンスの影響を評価するために、JVMTI (C API) を使用して生成したいと考えています。(私は jstack と JMX を認識しています。この質問は一般にスレッド ダンプの取得に関するものではなく、JVMTI API の使用に関するものです)。
このブログ投稿からコードを作成しています。そこでは、Java エージェントが SIGQUIT シグナルにアタッチされます。これは、JVM がスレッド ダンプを stdout に書き込むために使用する信号と同じであるため、避けたいと思います。その二面性は避けたい。
つまり、別のシグナルにアタッチするか、エージェントが定期的にスレッド ダンプを生成する方法を見つけたいと考えています。
java - JVMTI は接続している vm と通信します
Java Attach API を使用して接続するネイティブ JVMTI エージェントがあります。エージェントは基本的に実行するだけAgent_OnAttach
で存在します。エージェントから、エージェントを接続した VM に情報を渡したいと考えています。エージェントをアタッチした VM の stdout に書き込むだけでも問題ありません。ソケットや名前付きパイプなどの帯域外手段を使用できることは承知していますが、組み込みのものを探しています。
java - 「dtrace スタイル」で Java アプリケーションをトレースするには?
動的プローブ (dtrace や systemtap など) を使用して Java アプリケーションをトレースするタスクがあります。もちろん、アプリケーションを再起動したり再コンパイルしたりせずに実行する必要があります。メソッド呼び出しと内部 JVM イベントでインターセプターを動的に設定できるようにする必要があります。solaris では dtrace で実行できますが、他のシステムでは実行できません。このタスクを解決するにはどうすればよいですか?