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
diff --git a/compiler/debug/elf_debug_writer.cc b/compiler/debug/elf_debug_writer.cc
index 4f2a007..0ca7370 100644
--- a/compiler/debug/elf_debug_writer.cc
+++ b/compiler/debug/elf_debug_writer.cc
@@ -114,10 +114,10 @@
}
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 @@
// 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 @@
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 @@
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)) {