Don't send method exit trace events multiple times
JVMTI method exit event listeners expect to be called multiple times for
the same method to implement features like pop frame and force return.
We shouldn't generate multiple trace events for these events though. To
handle this, separate the jvmti method exit listeners from the trace
event listeners. Use a bit in the shadow frame flags to check if a
method exit event is already called and make sure only one trace event
is generated for a method exit.
Bug: 455851515
Test: art/test.py --trace -t 1968/1969/1970
Flag: EXEMPT BUGFIX
Change-Id: I20d446a3ac4ef991d3df719cf1f598e50ecf163f
6 files changed