aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2014-11-17 08:31:47 +0800
committerYao Qi <yao@codesourcery.com>2014-11-17 08:31:47 +0800
commit41c7760520c02124d2d3d0b8ad12e2186ba48f46 (patch)
treec6c6e66bb08ed446f544989dd0c3dcd9dff18a02
parent209fed2decc3cbda86fdf0c2c7bf24ee14cd9fc8 (diff)
downloadgdb-41c7760520c02124d2d3d0b8ad12e2186ba48f46.zip
gdb-41c7760520c02124d2d3d0b8ad12e2186ba48f46.tar.gz
gdb-41c7760520c02124d2d3d0b8ad12e2186ba48f46.tar.bz2
dwarf.exp: In 64-bit units, emit also abbrev offset as a 64-bit field
Dwarf::tu and Dwarf::cu allow selection of units with 64-bit offsets through an option. When selected, unit size is encoded properly, but offset to abbreviation unit is still encoded in a 4-byte field. This patch fixes the problem. Reproducer: Dwarf::assemble "blah.s" { tu {is_64 1 version 4 addr_size 8} 0x1122334455667788 the_type { type_unit {} { the_type: } } cu {is_64 1 version 4 addr_size 8} { compile_unit {{language @DW_LANG_C}} {} } } gdb/testsuite: * lib/dwarf.exp (Dwarf::cu, Dwarf::tu): Emit ${_cu_offset_size} bytes abbrev offset.
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/lib/dwarf.exp4
2 files changed, 7 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 65687c0..2a027d5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-17 Petr Machata <pmachata@redhat.com>
+
+ * lib/dwarf.exp (Dwarf::cu, Dwarf::tu): Emit
+ ${_cu_offset_size} bytes abbrev offset.
+
2014-11-15 Doug Evans <xdje42@gmail.com>
PR symtab/17559
diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
index cadda3e..778ad1c 100644
--- a/gdb/testsuite/lib/dwarf.exp
+++ b/gdb/testsuite/lib/dwarf.exp
@@ -954,7 +954,7 @@ namespace eval Dwarf {
}
define_label $start_label
_op .2byte $_cu_version Version
- _op .4byte $my_abbrevs Abbrevs
+ _op .${_cu_offset_size}byte $my_abbrevs Abbrevs
_op .byte $_cu_addr_size "Pointer size"
_defer_output $_abbrev_section {
@@ -1047,7 +1047,7 @@ namespace eval Dwarf {
}
define_label $start_label
_op .2byte $_cu_version Version
- _op .4byte $my_abbrevs Abbrevs
+ _op .${_cu_offset_size}byte $my_abbrevs Abbrevs
_op .byte $_cu_addr_size "Pointer size"
_op .8byte $signature Signature
if { $type_label != "" } {