JPDA 架構研究10 - Agent利用環境指針訪問VM(局部變量管理篇)

引入:jvm

上篇咱們講解了Agent如何利用環境指針訪問VM的管理堆的操做。這裏主要講解如何管理局部變量。ide


分類6:局部變量管理指針

a.GetLocalObject. 獲取局部對象對象

jvmtiError
GetLocalObject(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jobject* value_ptr)


b.GetLocalInt.獲取局部整型值it

jvmtiError
GetLocalInt(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jint* value_ptr)

它能夠被用來獲取整型,字符,字節,布爾型。class


c.GetLocalLong.獲取局部長整型值thread

jvmtiError
GetLocalLong(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jlong* value_ptr)


d.GetLocalFloat.獲取局部的浮點值。變量

jvmtiError
GetLocalFloat(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jfloat* value_ptr)


e.GetLocalDouble.獲取局部的雙精度浮點值。object

jvmtiError
GetLocalDouble(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jdouble* value_ptr)


f.SetLocalObject.設置局部對象。float

jvmtiError
SetLocalObject(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jobject value)


g.SetLocalInt.設置局部整型變量。

jvmtiError
SetLocalInt(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jint value)

一樣適用於整型,字符,字節,布爾型。


h.SetLocalLong.設置局部長整型變量。

jvmtiError
SetLocalLong(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jlong value)


i.SetLocalFloat.設置局部浮點變量。

jvmtiError
SetLocalFloat(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jfloat value)


j.SetLocalDouble.設置局部雙精度浮點變量。

jvmtiError
SetLocalDouble(jvmtiEnv* env,
            jthread thread,
            jint depth,
            jint slot,
            jdouble value)
相關文章
相關標籤/搜索