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