in modules/jpda/src/main/native/jdwp/common/agent/core/RequestModifier.h [872:894]
bool Apply(JNIEnv* jni, EventInfo &eInfo) throw()
{
if (eInfo.instance == 0 &&
(eInfo.kind == JDWP_EVENT_SINGLE_STEP ||
eInfo.kind == JDWP_EVENT_BREAKPOINT ||
eInfo.kind == JDWP_EVENT_EXCEPTION ||
eInfo.kind == JDWP_EVENT_METHOD_ENTRY ||
eInfo.kind == JDWP_EVENT_METHOD_EXIT))
{
jint modifiers;
jvmtiError err;
JVMTI_TRACE(err, GetJvmtiEnv()->GetMethodModifiers(
eInfo.method, &modifiers));
if (err == JVMTI_ERROR_NONE && (modifiers & ACC_STATIC) == 0) {
// get "this" object from slot 0 (stated in JVM spec)
JVMTI_TRACE(err, GetJvmtiEnv()->GetLocalObject(
eInfo.thread, 0, 0, &eInfo.instance));
}
}
return ((eInfo.instance == 0 && m_instance == 0) ||
((eInfo.instance != 0 && m_instance != 0) &&
JNI_TRUE == jni->IsSameObject(eInfo.instance, m_instance)));
}