diff options
| author | 2016-03-09 11:44:44 +0000 | |
|---|---|---|
| committer | 2016-03-10 10:29:27 +0000 | |
| commit | fe736b775c7774bb2f7072e022099ca47dd21a3c (patch) | |
| tree | 92a7850c812dc0373738c6c5cfdff5a32d5e489c /compiler/debug/elf_debug_writer.cc | |
| parent | 197160d47f34238cb5e7444fa4c2de300db8e2c6 (diff) | |
Allow generation of native debug info for multiple methods.
Slight tweak in the API which I will need in the near future.
Change-Id: I45954ae16710bc941a9a06a3a17c70798315ca53
Diffstat (limited to 'compiler/debug/elf_debug_writer.cc')
| -rw-r--r-- | compiler/debug/elf_debug_writer.cc | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/compiler/debug/elf_debug_writer.cc b/compiler/debug/elf_debug_writer.cc index 4f2a007492..0ca7370f98 100644 --- a/compiler/debug/elf_debug_writer.cc +++ b/compiler/debug/elf_debug_writer.cc @@ -114,10 +114,10 @@ std::vector<uint8_t> MakeMiniDebugInfo( } template <typename ElfTypes> -static ArrayRef<const uint8_t> WriteDebugElfFileForMethodInternal( - const InstructionSet isa, +static ArrayRef<const uint8_t> WriteDebugElfFileForMethodsInternal( + InstructionSet isa, const InstructionSetFeatures* features, - const MethodDebugInfo& method_info) { + const ArrayRef<const MethodDebugInfo>& method_infos) { std::vector<uint8_t> buffer; buffer.reserve(KB); VectorOutputStream out("Debug ELF file", &buffer); @@ -125,7 +125,7 @@ static ArrayRef<const uint8_t> WriteDebugElfFileForMethodInternal( // No program headers since the ELF file is not linked and has no allocated sections. builder->Start(false /* write_program_headers */); WriteDebugInfo(builder.get(), - ArrayRef<const MethodDebugInfo>(&method_info, 1), + method_infos, dwarf::DW_DEBUG_FRAME_FORMAT, false /* write_oat_patches */); builder->End(); @@ -137,19 +137,20 @@ static ArrayRef<const uint8_t> WriteDebugElfFileForMethodInternal( return ArrayRef<const uint8_t>(result, buffer.size()); } -ArrayRef<const uint8_t> WriteDebugElfFileForMethod(const InstructionSet isa, - const InstructionSetFeatures* features, - const MethodDebugInfo& method_info) { +ArrayRef<const uint8_t> WriteDebugElfFileForMethods( + InstructionSet isa, + const InstructionSetFeatures* features, + const ArrayRef<const MethodDebugInfo>& method_infos) { if (Is64BitInstructionSet(isa)) { - return WriteDebugElfFileForMethodInternal<ElfTypes64>(isa, features, method_info); + return WriteDebugElfFileForMethodsInternal<ElfTypes64>(isa, features, method_infos); } else { - return WriteDebugElfFileForMethodInternal<ElfTypes32>(isa, features, method_info); + return WriteDebugElfFileForMethodsInternal<ElfTypes32>(isa, features, method_infos); } } template <typename ElfTypes> static ArrayRef<const uint8_t> WriteDebugElfFileForClassesInternal( - const InstructionSet isa, + InstructionSet isa, const InstructionSetFeatures* features, const ArrayRef<mirror::Class*>& types) SHARED_REQUIRES(Locks::mutator_lock_) { @@ -174,7 +175,7 @@ static ArrayRef<const uint8_t> WriteDebugElfFileForClassesInternal( return ArrayRef<const uint8_t>(result, buffer.size()); } -ArrayRef<const uint8_t> WriteDebugElfFileForClasses(const InstructionSet isa, +ArrayRef<const uint8_t> WriteDebugElfFileForClasses(InstructionSet isa, const InstructionSetFeatures* features, const ArrayRef<mirror::Class*>& types) { if (Is64BitInstructionSet(isa)) { |