diff options
author | 2017-09-01 13:35:26 +0100 | |
---|---|---|
committer | 2017-09-18 16:53:30 +0100 | |
commit | 1b404a8b34f6fa80342955cb0a61673503328b51 (patch) | |
tree | df0d83903e77c55dcb476a19961ea9cccc13e616 /compiler/linker/relative_patcher.cc | |
parent | fe712a8b9c247d66df013f2b4b6faa6009d745bb (diff) |
Add debug info for link-time generated thunks.
Add debug info for method call thunks (currently unused) and
Baker read barrier thunks. Refactor debug info generation
for trampolines and record their sizes; change their names
to start with upper-case letters, so that they can be easily
generated as `#fn_name`.
This improved debug info must be generated by `dex2oat -g`,
the debug info generated by `oatdump --symbolize` remains
the same as before, except for the renamed trampolines and
an adjustment for "code delta", i.e. the Thumb mode bit.
Cortex-A53 erratum 843419 workaround thunks are not covered
by this CL.
Test: Manual; run-test --gdb -Xcompiler-option -g 160, pull
symbols for gdbclient, break in the introspection
entrypoint, check that gdb knows the new symbols
(and disassembles them) and `backtrace` works when
setting $pc to an address in the thunk.
Bug: 36141117
Change-Id: Id224b72cfa7a0628799c7db65e66e24c8517aabf
Diffstat (limited to 'compiler/linker/relative_patcher.cc')
-rw-r--r-- | compiler/linker/relative_patcher.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/linker/relative_patcher.cc b/compiler/linker/relative_patcher.cc index ee49453938..dc15bb087e 100644 --- a/compiler/linker/relative_patcher.cc +++ b/compiler/linker/relative_patcher.cc @@ -16,6 +16,7 @@ #include "linker/relative_patcher.h" +#include "debug/method_debug_info.h" #ifdef ART_ENABLE_CODEGEN_arm #include "linker/arm/relative_patcher_thumb2.h" #endif @@ -81,6 +82,11 @@ std::unique_ptr<RelativePatcher> RelativePatcher::Create( LOG(FATAL) << "Unexpected baker read barrier branch patch."; } + std::vector<debug::MethodDebugInfo> GenerateThunkDebugInfo( + uint32_t executable_offset ATTRIBUTE_UNUSED) OVERRIDE { + return std::vector<debug::MethodDebugInfo>(); // No thunks added. + } + private: DISALLOW_COPY_AND_ASSIGN(RelativePatcherNone); }; |