diff options
author | Petr Machata <pmachata@redhat.com> | 2014-11-17 08:31:47 +0800 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2014-11-17 08:31:47 +0800 |
commit | 41c7760520c02124d2d3d0b8ad12e2186ba48f46 (patch) | |
tree | c6c6e66bb08ed446f544989dd0c3dcd9dff18a02 | |
parent | 209fed2decc3cbda86fdf0c2c7bf24ee14cd9fc8 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/lib/dwarf.exp | 4 |
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 != "" } { |