diff options
author | 2022-07-18 15:08:09 +0100 | |
---|---|---|
committer | 2022-07-22 06:47:11 +0000 | |
commit | aad352f8112a6bca30c2b4b0451797c3cfc96007 (patch) | |
tree | d2345d96301c2857fc51d3fbc8d5827174ef59ce /runtime/class_linker_test.cc | |
parent | a2012decc3bee248d2405cd7a6bfb81416791af1 (diff) |
Retrieve StackFrameInfo fields from the runtime
Bug: 191862780
Test: atest art_standalone_runtime_tests
Test: atest CtsLibcoreOjTestCases:test.java.lang.StackWalker.Basic
Change-Id: I481e07e0ee23b82ba685478a1b8f27b0747baf31
Diffstat (limited to 'runtime/class_linker_test.cc')
-rw-r--r-- | runtime/class_linker_test.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/runtime/class_linker_test.cc b/runtime/class_linker_test.cc index 0e7dee8c9f..666f86eca6 100644 --- a/runtime/class_linker_test.cc +++ b/runtime/class_linker_test.cc @@ -52,6 +52,7 @@ #include "mirror/object_array-inl.h" #include "mirror/proxy.h" #include "mirror/reference.h" +#include "mirror/stack_frame_info.h" #include "mirror/stack_trace_element.h" #include "mirror/string-inl.h" #include "mirror/var_handle.h" @@ -641,6 +642,20 @@ struct StackTraceElementOffsets : public CheckOffsets<mirror::StackTraceElement> } }; +struct StackFrameInfoOffsets : public CheckOffsets<mirror::StackFrameInfo> { + StackFrameInfoOffsets() : CheckOffsets<mirror::StackFrameInfo>( + false, "Ljava/lang/StackFrameInfo;") { + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, bci_), "bci"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, declaring_class_), "declaringClass"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, file_name_), "fileName"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, line_number_), "lineNumber"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, method_name_), "methodName"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, method_type_), "methodType"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, retain_class_ref_), "retainClassRef"); + addOffset(OFFSETOF_MEMBER(mirror::StackFrameInfo, ste_), "ste"); + } +}; + struct ClassLoaderOffsets : public CheckOffsets<mirror::ClassLoader> { ClassLoaderOffsets() : CheckOffsets<mirror::ClassLoader>(false, "Ljava/lang/ClassLoader;") { addOffset(OFFSETOF_MEMBER(mirror::ClassLoader, allocator_), "allocator"); @@ -859,6 +874,7 @@ TEST_F(ClassLinkerTest, ValidateFieldOrderOfJavaCppUnionClasses) { EXPECT_TRUE(ArrayElementVarHandleOffsets().Check()); EXPECT_TRUE(ByteArrayViewVarHandleOffsets().Check()); EXPECT_TRUE(ByteBufferViewVarHandleOffsets().Check()); + EXPECT_TRUE(StackFrameInfoOffsets().Check()); } TEST_F(ClassLinkerTest, FindClassNonexistent) { |