summaryrefslogtreecommitdiff
path: root/compiler/dwarf/dwarf_test.h
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2015-05-06 18:27:35 +0100
committer David Srbecky <dsrbecky@google.com> 2015-05-19 15:36:53 +0100
commitad5fa8c5b26a325dc2a9521b87188755046c17f3 (patch)
tree1be28a827fe9e186196ad744eaa3438c1bea3f0a /compiler/dwarf/dwarf_test.h
parentcfee0507f26375fe048ed35f402e61f904db0095 (diff)
Support generation of CFI in .debug_frame format.
.debug_frame section is almost identical to .eh_frame section. There are only minor differences in the CIE and FDE headers. The main difference is that .eh_frame is intended to be used at runtime for exception handling and is therefore allocated within the running program whereas .debug_frame is not. This makes .debug_frame easier to remove using standard tools. "objcopy --strip-debug" removes .debug_frame, but not .eh_frame. (although objcopy can be still be forced to remove .eh_frame) Similarly, we might want to separate the CFI to separate debug file or include it as compressed .gnu_debugdata section. It is more appropriate to use .debug_frame for this purpose. Bug:20556771 Change-Id: I9d91a333b9fb37523fd6fafccfad89b21d2477af
Diffstat (limited to 'compiler/dwarf/dwarf_test.h')
-rw-r--r--compiler/dwarf/dwarf_test.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/dwarf/dwarf_test.h b/compiler/dwarf/dwarf_test.h
index 230ebe3a79..3afb5eae56 100644
--- a/compiler/dwarf/dwarf_test.h
+++ b/compiler/dwarf/dwarf_test.h
@@ -69,7 +69,7 @@ class DwarfTest : public CommonRuntimeTest {
RawSection debug_abbrev(".debug_abbrev", SHT_PROGBITS, 0, nullptr, 0, 1, 0);
RawSection debug_str(".debug_str", SHT_PROGBITS, 0, nullptr, 0, 1, 0);
RawSection debug_line(".debug_line", SHT_PROGBITS, 0, nullptr, 0, 1, 0);
- RawSection eh_frame(".eh_frame", SHT_PROGBITS, SHF_ALLOC, nullptr, 0, kPageSize, 0);
+ RawSection debug_frame(".debug_frame", SHT_PROGBITS, 0, nullptr, 0, 8, 0);
if (!debug_info_data_.empty()) {
debug_info.SetBuffer(debug_info_data_);
builder.RegisterSection(&debug_info);
@@ -86,9 +86,9 @@ class DwarfTest : public CommonRuntimeTest {
debug_line.SetBuffer(debug_line_data_);
builder.RegisterSection(&debug_line);
}
- if (!eh_frame_data_.empty()) {
- eh_frame.SetBuffer(eh_frame_data_);
- builder.RegisterSection(&eh_frame);
+ if (!debug_frame_data_.empty()) {
+ debug_frame.SetBuffer(debug_frame_data_);
+ builder.RegisterSection(&debug_frame);
}
ScratchFile file;
builder.Write(file.GetFile());
@@ -167,7 +167,7 @@ class DwarfTest : public CommonRuntimeTest {
}
// Buffers which are going to assembled into ELF file and passed to objdump.
- std::vector<uint8_t> eh_frame_data_;
+ std::vector<uint8_t> debug_frame_data_;
std::vector<uint8_t> debug_info_data_;
std::vector<uint8_t> debug_abbrev_data_;
std::vector<uint8_t> debug_str_data_;