jvmti

    0熱度

    1回答

    我正在使用JVMTI接口的API爲JVM編寫自定義調試器,我需要獲取聲明方法的類名,使用error = (*jvmti)->GetMethodName(jvmti,frames[i].method,&methodName,NULL,NULL);,我試圖讓使用error = (*jvmti)->GetMethodDeclaringClass(jvmti,frames[i].method,&decla

    1熱度

    1回答

    我註冊一個JVMTI EventMethodEntry其回調函數是 tdMethodEntry,如果有很多很多MethodEntry活動,我的問題是, 這些活動將通過隊列中的同一個線程來處理?或由多個線程處理?

    1熱度

    2回答

    在我的項目中,我正在實現一個JNI代理,它將在我的自定義「.c」文件中將所有java原生方法重新綁定到我的自定義方法中。因此,由於JNI代理在運行時綁定本地方法,因此我只會談論運行時解決方案。 當JNI結合本地方法,下面的函數被調用: void JNICALL NativeMethodBind(jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthr

    0熱度

    1回答

    我想在應用程序中發生異常時記錄應用程序的狀態,我特別感興趣的方法局部變量值(雙方原始和用戶定義)?我已經閱讀了ASM 5.1的文檔,但是我找不到可以讓我訪問這些值的任何接口?有沒有辦法做到這一點,如果不使用ASM是否有任何其他接口,讓我這樣做?該解決方案應該獨立於應用程序,它應該是即插即用型解決方案,使用它我應該能夠將其插入任何Java應用程序。使用JNI 獲取字段ID: char *klazNa

    0熱度

    1回答

    我使用下面的Java程序,我正在嘗試捕捉方法中的變量的狀態發生異常時使用JVMTI, public class SimpleThread{ static MyThread t; String thisThread = "this Thread"; public static void main(String[] args) throws Exception {

    2熱度

    1回答

    我正在寫JVMTI代理,我試圖訪問特定的類字段值,當我有jobject的某個時候。我知道他們位於堆而不是堆棧。 看着這個不幸並不能幫助我。 https://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#object jclass jcls = env->GetObjectClass(object_value); jint fie

    1熱度

    1回答

    我正在使用JVMTI編寫應用程序。我正在嘗試使用字節碼:通過在每個方法條目上注入方法調用。 我知道該怎麼做,但問題出在儀器類上,比如說它叫做Proxy,我用JNI函數DefineClass加載。我的Proxy在Java類庫中有一些依賴關係,目前只有java.lang.ThreadLocal<Boolean>。 現在,說我有這個,其中inInstrumentMethod是一個普通的boolean:

    1熱度

    1回答

    首先我表示歉意,因爲這已經有所迴應,但我認爲我的情況有點不同。 How to communicate with jvmti agent attached on a running JVM 我的主要問題是... 我如果有反正使用JNI或其他圖書館JVMTI一個本地代理和一個完全獨立的JVM之間進行通信疑惑。 這裏是一個小插圖 因此,whats發生在這裏。 左側的JVM加載了本地代理。爲了討論起見,我

    10熱度

    1回答

    爲了各種目的,我正在運行一個類文件。爲此,我正在使用JVMTI代理。我的方法是調用RetransformClasses函數來調用ClassFileLoadHook。該策略適用於所有在檢測時間之後有進一步調用的方法,因爲實際檢測發生在後續函數調用中,但對於在程序中沒有進一步調用功能的任何方法(例如main函數)不起作用。 我想在執行過程中實時檢測一個方法。我想要一些程序,如儀表代碼的On-Stack

    0熱度

    1回答

    在我的項目中,我想使用JNI代理攔截java-static-native方法的結果。 我的基本方法是在綁定時將所有靜態方法重新綁定到我的攔截器方法。攔截器方法會接受可變參數的數量,並在被調用時將它們轉發給相應的靜態函數。 這是一個合適的方法嗎?現在我在執行我很難從攔截功能的可變參數轉發到實際功能... (c++ forward function call) 沒有人對此有一個更好的方法的想法?還是我