tree 6e82ddaaf540cc289b0d515daff59702945b5b9f
parent d30c0d61226621518e53682e9299f930cc5e7a5b
author Victor Chang <vichang@google.com> 1659373225 +0100
committer Victor Chang <vichang@google.com> 1659456229 +0100

Expose the StackWalker APIs from OpenJDK 17

The new APIs provide a way to
1. Retrive more details of each frame, e.g. StackFrame.getMethodType(),
   getDeclaringClass(), getByteCodeIndex()
2. Filter frames via Option.SHOW_REFLECT_FRAMES
3. Retrieve frames lazily by returning a Stream<StackFrame>

The upstream proposal has more details about the motivation.

Option.SHOW_HIDDEN_FRAMES has the same effect as SHOW_REFLECT_FRAMES,
but is exposed because
1. in favour of portaiblity if 3rd-party library needs to be compiled on
   Android
2. If ART module is updated to support hidden frames, existing app
   can use the option on the existing platform.
3. The existing javadoc has stated that the implementation can choose to
   support hidden frames or not. We don't violate the API contract even
   though the option has no extra effect.
4. The option isn't really hidden from app anyway, because it's exposed via
   Option.values().

All new APIs have the existing CTS test coverage.
See the below test commands

Bug: 191862780
Test: atest CtsLibcoreOjTestCases:test.java.lang
Test: atest CtsLibcoreTestCases:libcore.java.lang.StackWalkerTest
Change-Id: I43fbe4a596d6fa94692de424fb370d52c3722fc2
