summaryrefslogtreecommitdiffstats
path: root/compiler/dwarf/headers.h
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2015-11-09 18:05:48 +0000
committerDavid Srbecky <dsrbecky@google.com>2015-11-20 16:30:38 +0000
commit04b0526d60de4e9979fc486d2ba655247d211d0b (patch)
treef1557aea44abe67f83b74e332fc8d8c28192a3ff /compiler/dwarf/headers.h
parent349baca032735e4a386b74709aa94d17f076cbce (diff)
downloadart-04b0526d60de4e9979fc486d2ba655247d211d0b.tar.gz
art-04b0526d60de4e9979fc486d2ba655247d211d0b.tar.bz2
art-04b0526d60de4e9979fc486d2ba655247d211d0b.zip
Encode function signatures properly in DWARF.
The signatures were previously stored as plain string. The proper way in DWARF is to store them as structured tree of tags. (for example, DW_TAG_subprogram containing DW_TAG_formal_parameter) Note that this makes the debug sections smaller since DWARF signatures are actually more efficient than just plain strings. Change-Id: I6afbce28340570666d8674d07c0e324aad561dd5
Diffstat (limited to 'compiler/dwarf/headers.h')
-rw-r--r--compiler/dwarf/headers.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/dwarf/headers.h b/compiler/dwarf/headers.h
index 633e2f7d88..c75aeacabd 100644
--- a/compiler/dwarf/headers.h
+++ b/compiler/dwarf/headers.h
@@ -138,6 +138,7 @@ void WriteDebugInfoCU(uint32_t debug_abbrev_offset,
writer.PushUint32(debug_abbrev_offset);
writer.PushUint8(entries.Is64bit() ? 8 : 4);
size_t entries_offset = writer.data()->size();
+ DCHECK_EQ(entries_offset, DebugInfoEntryWriter<Vector>::kCompilationUnitHeaderSize);
writer.PushData(*entries.data());
writer.UpdateUint32(start, writer.data()->size() - start - 4);
// Copy patch locations and make them relative to .debug_info section.