引入: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)