diff options
Diffstat (limited to 'openjdkjvmti')
-rw-r--r-- | openjdkjvmti/ti_method.cc | 5 | ||||
-rw-r--r-- | openjdkjvmti/ti_stack.cc | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/openjdkjvmti/ti_method.cc b/openjdkjvmti/ti_method.cc index f05977a4b1..50402a04a9 100644 --- a/openjdkjvmti/ti_method.cc +++ b/openjdkjvmti/ti_method.cc @@ -572,8 +572,9 @@ class CommonLocalVariableClosure : public art::Closure { return; } art::ArtMethod* method = visitor.GetMethod(); - if (method->IsNative()) { - // TODO We really should support get/set for non-shadow frames. + // Native and 'art' proxy methods don't have registers. + if (method->IsNative() || method->IsProxyMethod()) { + // TODO It might be useful to fake up support for get at least on proxy frames. result_ = ERR(OPAQUE_FRAME); return; } else if (method->GetCodeItem()->registers_size_ <= slot_) { diff --git a/openjdkjvmti/ti_stack.cc b/openjdkjvmti/ti_stack.cc index d4cc42ae70..e0c139954d 100644 --- a/openjdkjvmti/ti_stack.cc +++ b/openjdkjvmti/ti_stack.cc @@ -789,7 +789,7 @@ jvmtiError StackUtil::GetFrameLocation(jvmtiEnv* env ATTRIBUTE_UNUSED, } *method_ptr = art::jni::EncodeArtMethod(closure.method); - if (closure.method->IsNative()) { + if (closure.method->IsNative() || closure.method->IsProxyMethod()) { *location_ptr = -1; } else { if (closure.dex_pc == art::dex::kDexNoIndex) { |