Ensure single-step always causes global deopt
We were incorrectly failing to globally deopt when the single-step
event is enabled if we have an active Breakpoint event at the same
time. This could cause single-step events to be missed in some
circumstances.
This is likely the cause of some rare flakes in the jdwp tests.
Bug: 69241796
Bug: 69243589
Test: ./test.py --host -j50
Test: ./test/run-test --host \
--with-agent \
'libbreakpointlogger.so=LMain;->main([Ljava/lang/String;)V@0' \
997-single-step
Change-Id: I24750625f0a22e61342b336935e32b0d18e9e4d6
diff --git a/openjdkjvmti/events.h b/openjdkjvmti/events.h
index c73215f..b051366 100644
--- a/openjdkjvmti/events.h
+++ b/openjdkjvmti/events.h
@@ -234,6 +234,8 @@
REQUIRES(!envs_lock_);
private:
+ void SetupTraceListener(JvmtiMethodTraceListener* listener, ArtJvmtiEvent event, bool enable);
+
template <ArtJvmtiEvent kEvent, typename ...Args>
ALWAYS_INLINE
inline std::vector<impl::EventHandlerFunc<kEvent>> CollectEvents(art::Thread* thread,