Revert "Revert "Ensure Proxy frames work with JVMTI stack frame functions""
This reverts commit d108d9eaae26df9e4480cf46d26e8c75f142bd6a.
It seems we have a bug somewhere in our proxy or stack-visitor code
causing StackVisitor::GetThisObject to return an object with a null
klass_. Added a temporary skip for the test configurations that expose
this until it can be fixed.
Bug: 66903662
Bug: 67679263
Reason for revert: Added skip for test that exposes a pre-existing bug
in our stack-visitor/proxy-object support.
Test: ./test.py --host -j40
Test: ./test/testrunner/testrunner.py --host --gcstress -t 1939
Change-Id: I8a457112af404c3f4c94e3a2029b744d453ced5d
diff --git a/openjdkjvmti/ti_method.cc b/openjdkjvmti/ti_method.cc
index f05977a..50402a0 100644
--- a/openjdkjvmti/ti_method.cc
+++ b/openjdkjvmti/ti_method.cc
@@ -572,8 +572,9 @@
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_) {