Don't run method entry callbacks for runtime methods
This is a fix for a bug introduced in
https://android-review.googlesource.com/c/platform/art/+/2002174
which didn't check for runtime methods when running these callbacks.
Bug: 206029744
Test: art/test.py
Change-Id: I5f370b3188ab8e18bf056cc7be7fdbedebc9909c
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index f8b6660..f7c5e46 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -565,7 +565,10 @@
LOG(INFO) << "Pushing frame " << instrumentation_frame.Dump();
}
- stack_methods_.push_back(m);
+ if (!m->IsRuntimeMethod()) {
+ // Runtime methods don't need to run method entry callbacks.
+ stack_methods_.push_back(m);
+ }
instrumentation_stack_->insert({GetReturnPcAddr(), instrumentation_frame});
SetReturnPc(instrumentation_exit_pc_);
}