diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-10-29 09:19:25 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-10-29 09:19:35 -0700 |
commit | 76868f3606fb9de04f49c441c1e3cdd3e943a34d (patch) | |
tree | 9e7bc0d04d149ef513710cc6bbce11e7caad10af | |
parent | cfaa8f76928803afda1e1862bcd0ab5f7febd647 (diff) | |
download | binutils-76868f3606fb9de04f49c441c1e3cdd3e943a34d.zip binutils-76868f3606fb9de04f49c441c1e3cdd3e943a34d.tar.gz binutils-76868f3606fb9de04f49c441c1e3cdd3e943a34d.tar.bz2 |
dwarf: Also match abbrev base when searching abbrev list
A .debug_abbrev section can have multiple CUs. When caching abbrev list,
we need to check abbrev base to support multiple CUs.
PR binutils/26808
* dwarf.c (abbrev_list): Add abbrev_base.
(new_abbrev_list): Add an abbrev_base argument and record it.
(find_abbrev_list_by_abbrev_offset): Add an abbrev_base argument
and match it.
(process_debug_info): Pass abbrev_base to new_abbrev_list and
find_abbrev_list_by_abbrev_offset.
(display_debug_abbrev): Pass 0 abbrev_base to new_abbrev_list
and find_abbrev_list_by_abbrev_offset.
* testsuite/binutils-all/x86-64/pr26808.dump: New file.
* testsuite/binutils-all/x86-64/pr26808.dwp.bz2: Likewise.
* testsuite/binutils-all/x86-64/x86-64.exp: Run PR binutils/26808
test.
-rw-r--r-- | binutils/ChangeLog | 16 | ||||
-rw-r--r-- | binutils/dwarf.c | 52 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/x86-64/pr26808.dump | 1440 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 | bin | 0 -> 2951 bytes | |||
-rw-r--r-- | binutils/testsuite/binutils-all/x86-64/x86-64.exp | 31 |
5 files changed, 1517 insertions, 22 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 5ccdf9b..3ff3316 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,19 @@ +2020-10-29 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/26808 + * dwarf.c (abbrev_list): Add abbrev_base. + (new_abbrev_list): Add an abbrev_base argument and record it. + (find_abbrev_list_by_abbrev_offset): Add an abbrev_base argument + and match it. + (process_debug_info): Pass abbrev_base to new_abbrev_list and + find_abbrev_list_by_abbrev_offset. + (display_debug_abbrev): Pass 0 abbrev_base to new_abbrev_list + and find_abbrev_list_by_abbrev_offset. + * testsuite/binutils-all/x86-64/pr26808.dump: New file. + * testsuite/binutils-all/x86-64/pr26808.dwp.bz2: Likewise. + * testsuite/binutils-all/x86-64/x86-64.exp: Run PR binutils/26808 + test. + 2020-10-29 Nick Clifton <nickc@redhat.com> PR 26805 diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 5cfa528..14a7791 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -876,6 +876,7 @@ typedef struct abbrev_list { abbrev_entry * first_abbrev; abbrev_entry * last_abbrev; + dwarf_vma abbrev_base; dwarf_vma abbrev_offset; struct abbrev_list * next; unsigned char * start_of_next_abbrevs; @@ -955,10 +956,11 @@ free_all_abbrevs (void) } static abbrev_list * -new_abbrev_list (dwarf_vma abbrev_offset) +new_abbrev_list (dwarf_vma abbrev_base, dwarf_vma abbrev_offset) { abbrev_list * list = (abbrev_list *) xcalloc (sizeof * list, 1); + list->abbrev_base = abbrev_base; list->abbrev_offset = abbrev_offset; list->next = abbrev_lists; @@ -968,12 +970,14 @@ new_abbrev_list (dwarf_vma abbrev_offset) } static abbrev_list * -find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_offset) +find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base, + dwarf_vma abbrev_offset) { abbrev_list * list; for (list = abbrev_lists; list != NULL; list = list->next) - if (list->abbrev_offset == abbrev_offset) + if (list->abbrev_base == abbrev_base + && list->abbrev_offset == abbrev_offset) return list; return NULL; @@ -3455,6 +3459,8 @@ process_debug_info (struct dwarf_section * section, { DWARF2_Internal_CompUnit compunit; unsigned char * hdrptr; + dwarf_vma abbrev_base; + size_t abbrev_size; dwarf_vma cu_offset; unsigned int offset_size; unsigned int initial_length_size; @@ -3499,25 +3505,25 @@ process_debug_info (struct dwarf_section * section, SAFE_BYTE_GET_AND_INC (compunit.cu_abbrev_offset, hdrptr, offset_size, end); - list = find_abbrev_list_by_abbrev_offset (compunit.cu_abbrev_offset); + if (this_set == NULL) + { + abbrev_base = 0; + abbrev_size = debug_displays [abbrev_sec].section.size; + } + else + { + abbrev_base = this_set->section_offsets [DW_SECT_ABBREV]; + abbrev_size = this_set->section_sizes [DW_SECT_ABBREV]; + } + + list = find_abbrev_list_by_abbrev_offset (abbrev_base, + compunit.cu_abbrev_offset); if (list == NULL) { - dwarf_vma abbrev_base; - size_t abbrev_size; unsigned char * next; - if (this_set == NULL) - { - abbrev_base = 0; - abbrev_size = debug_displays [abbrev_sec].section.size; - } - else - { - abbrev_base = this_set->section_offsets [DW_SECT_ABBREV]; - abbrev_size = this_set->section_sizes [DW_SECT_ABBREV]; - } - - list = new_abbrev_list (compunit.cu_abbrev_offset); + list = new_abbrev_list (abbrev_base, + compunit.cu_abbrev_offset); next = process_abbrev_set (((unsigned char *) debug_displays [abbrev_sec].section.start + abbrev_base + compunit.cu_abbrev_offset), @@ -3739,12 +3745,14 @@ process_debug_info (struct dwarf_section * section, (unsigned long) debug_displays [abbrev_sec].section.size); else { - list = find_abbrev_list_by_abbrev_offset (compunit.cu_abbrev_offset); + list = find_abbrev_list_by_abbrev_offset (abbrev_base, + compunit.cu_abbrev_offset); if (list == NULL) { unsigned char * next; - list = new_abbrev_list (compunit.cu_abbrev_offset); + list = new_abbrev_list (abbrev_base, + compunit.cu_abbrev_offset); next = process_abbrev_set (((unsigned char *) debug_displays [abbrev_sec].section.start + abbrev_base + compunit.cu_abbrev_offset), @@ -6071,10 +6079,10 @@ display_debug_abbrev (struct dwarf_section *section, dwarf_vma offset; offset = start - section->start; - list = find_abbrev_list_by_abbrev_offset (offset); + list = find_abbrev_list_by_abbrev_offset (0, offset); if (list == NULL) { - list = new_abbrev_list (offset); + list = new_abbrev_list (0, offset); start = process_abbrev_set (start, end, list); list->start_of_next_abbrevs = start; } diff --git a/binutils/testsuite/binutils-all/x86-64/pr26808.dump b/binutils/testsuite/binutils-all/x86-64/pr26808.dump new file mode 100644 index 0000000..f64f9d0 --- /dev/null +++ b/binutils/testsuite/binutils-all/x86-64/pr26808.dump @@ -0,0 +1,1440 @@ +Contents of the .debug_info.dwo section: + + Compilation Unit @ offset 0x0: + Length: 0x178 (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Section contributions: + .debug_abbrev.dwo: 0x0 0x154 + .debug_line.dwo: 0x0 0x40 + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x0 0x14 + <0><b>: Abbrev Number: 12 (DW_TAG_compile_unit) + <c> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease) + <37> DW_AT_language : 4 (C++) + <38> DW_AT_name : dwp_test_main.cc + <49> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite + <88> DW_AT_GNU_dwo_id : 0xe5ba51d95c9aebc8 + <1><90>: Abbrev Number: 7 (DW_TAG_base_type) + <91> DW_AT_byte_size : 4 + <92> DW_AT_encoding : 5 (signed) + <93> DW_AT_name : int + <1><97>: Abbrev Number: 7 (DW_TAG_base_type) + <98> DW_AT_byte_size : 1 + <99> DW_AT_encoding : 2 (boolean) + <9a> DW_AT_name : bool + <1><9f>: Abbrev Number: 13 (DW_TAG_subprogram) + <a0> DW_AT_external : 1 + <a0> DW_AT_name : main + <a5> DW_AT_decl_file : 1 + <a6> DW_AT_decl_line : 30 + <a7> DW_AT_type : <0x90> + <ab> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section> + <ac> DW_AT_high_pc : 0x304 + <b4> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <b6> DW_AT_GNU_all_tail_call_sites: 1 + <b6> DW_AT_sibling : <0x11b> + <2><ba>: Abbrev Number: 14 (DW_TAG_lexical_block) + <bb> DW_AT_low_pc : (addr_index: 0x1): <no .debug_addr section> + <bc> DW_AT_high_pc : 0x2fa + <3><c4>: Abbrev Number: 15 (DW_TAG_variable) + <c5> DW_AT_name : c1 + <c8> DW_AT_decl_file : 1 + <c9> DW_AT_decl_line : 32 + <ca> DW_AT_type : signature: 0xb5faa2a4b7a919c4 + <d2> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32) + <3><d5>: Abbrev Number: 15 (DW_TAG_variable) + <d6> DW_AT_name : c2 + <d9> DW_AT_decl_file : 1 + <da> DW_AT_decl_line : 33 + <db> DW_AT_type : signature: 0xab98c7bc886f5266 + <e3> DW_AT_location : 2 byte block: 91 50 (DW_OP_fbreg: -48) + <3><e6>: Abbrev Number: 16 (DW_TAG_variable) + <e7> DW_AT_name : __PRETTY_FUNCTION__ + <fb> DW_AT_type : <0x13f> + <ff> DW_AT_artificial : 1 + <ff> DW_AT_location : 2 byte block: fb 2 (DW_OP_GNU_addr_index <0x2>) + <3><102>: Abbrev Number: 14 (DW_TAG_lexical_block) + <103> DW_AT_low_pc : (addr_index: 0x3): <no .debug_addr section> + <104> DW_AT_high_pc : 0x2f + <4><10c>: Abbrev Number: 17 (DW_TAG_variable) + <10d> DW_AT_name : i + <10f> DW_AT_decl_file : 1 + <110> DW_AT_decl_line : 37 + <111> DW_AT_type : <0x90> + <115> DW_AT_location : 2 byte block: 91 6c (DW_OP_fbreg: -20) + <4><118>: Abbrev Number: 0 + <3><119>: Abbrev Number: 0 + <2><11a>: Abbrev Number: 0 + <1><11b>: Abbrev Number: 18 (DW_TAG_array_type) + <11c> DW_AT_type : <0x137> + <120> DW_AT_sibling : <0x12b> + <2><124>: Abbrev Number: 19 (DW_TAG_subrange_type) + <125> DW_AT_type : <0x12b> + <129> DW_AT_upper_bound : 10 + <2><12a>: Abbrev Number: 0 + <1><12b>: Abbrev Number: 7 (DW_TAG_base_type) + <12c> DW_AT_byte_size : 8 + <12d> DW_AT_encoding : 7 (unsigned) + <12e> DW_AT_name : sizetype + <1><137>: Abbrev Number: 7 (DW_TAG_base_type) + <138> DW_AT_byte_size : 1 + <139> DW_AT_encoding : 6 (signed char) + <13a> DW_AT_name : char + <1><13f>: Abbrev Number: 20 (DW_TAG_const_type) + <140> DW_AT_type : <0x11b> + <1><144>: Abbrev Number: 21 (DW_TAG_variable) + <145> DW_AT_name : c3 + <148> DW_AT_decl_file : 2 + <149> DW_AT_decl_line : 57 + <14a> DW_AT_type : signature: 0xb534bdc1f01629bb + <152> DW_AT_external : 1 + <152> DW_AT_declaration : 1 + <1><152>: Abbrev Number: 22 (DW_TAG_variable) + <153> DW_AT_name : v3 + <156> DW_AT_decl_file : 2 + <157> DW_AT_decl_line : 60 + <158> DW_AT_type : <0x90> + <15c> DW_AT_external : 1 + <15c> DW_AT_declaration : 1 + <1><15c>: Abbrev Number: 18 (DW_TAG_array_type) + <15d> DW_AT_type : <0x137> + <161> DW_AT_sibling : <0x167> + <2><165>: Abbrev Number: 23 (DW_TAG_subrange_type) + <2><166>: Abbrev Number: 0 + <1><167>: Abbrev Number: 22 (DW_TAG_variable) + <168> DW_AT_name : v4 + <16b> DW_AT_decl_file : 2 + <16c> DW_AT_decl_line : 61 + <16d> DW_AT_type : <0x15c> + <171> DW_AT_external : 1 + <171> DW_AT_declaration : 1 + <1><171>: Abbrev Number: 22 (DW_TAG_variable) + <172> DW_AT_name : v5 + <175> DW_AT_decl_file : 2 + <176> DW_AT_decl_line : 62 + <177> DW_AT_type : <0x15c> + <17b> DW_AT_external : 1 + <17b> DW_AT_declaration : 1 + <1><17b>: Abbrev Number: 0 + Compilation Unit @ offset 0x17c: + Length: 0x5af (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Section contributions: + .debug_abbrev.dwo: 0x154 0x21d + .debug_line.dwo: 0x40 0x3d + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x14 0x44 + <0><187>: Abbrev Number: 12 (DW_TAG_compile_unit) + <188> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease) + <1b3> DW_AT_language : 4 (C++) + <1b4> DW_AT_name : dwp_test_1.cc + <1c2> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite + <201> DW_AT_GNU_dwo_id : 0x52f9c6092fdc3727 + <1><209>: Abbrev Number: 13 (DW_TAG_class_type) + <20a> DW_AT_name : C1 + <20d> DW_AT_signature : signature: 0xb5faa2a4b7a919c4 + <215> DW_AT_declaration : 1 + <215> DW_AT_sibling : <0x242> + <2><219>: Abbrev Number: 14 (DW_TAG_subprogram) + <21a> DW_AT_external : 1 + <21a> DW_AT_name : (indexed string: 0x0): testcase1 + <21b> DW_AT_decl_file : 1 + <21c> DW_AT_decl_line : 28 + <21d> DW_AT_linkage_name: (indexed string: 0xc): _ZN2C19testcase1Ev + <21e> DW_AT_type : <0x249> + <222> DW_AT_accessibility: 1 (public) + <223> DW_AT_declaration : 1 + <2><223>: Abbrev Number: 14 (DW_TAG_subprogram) + <224> DW_AT_external : 1 + <224> DW_AT_name : (indexed string: 0x1): testcase2 + <225> DW_AT_decl_file : 1 + <226> DW_AT_decl_line : 31 + <227> DW_AT_linkage_name: (indexed string: 0xd): _ZN2C19testcase2Ev + <228> DW_AT_type : <0x249> + <22c> DW_AT_accessibility: 1 (public) + <22d> DW_AT_declaration : 1 + <2><22d>: Abbrev Number: 14 (DW_TAG_subprogram) + <22e> DW_AT_external : 1 + <22e> DW_AT_name : (indexed string: 0x4): testcase3 + <22f> DW_AT_decl_file : 1 + <230> DW_AT_decl_line : 32 + <231> DW_AT_linkage_name: (indexed string: 0xe): _ZN2C19testcase3Ev + <232> DW_AT_type : <0x249> + <236> DW_AT_accessibility: 1 (public) + <237> DW_AT_declaration : 1 + <2><237>: Abbrev Number: 14 (DW_TAG_subprogram) + <238> DW_AT_external : 1 + <238> DW_AT_name : (indexed string: 0xa): testcase4 + <239> DW_AT_decl_file : 1 + <23a> DW_AT_decl_line : 33 + <23b> DW_AT_linkage_name: (indexed string: 0xf): _ZN2C19testcase4Ev + <23c> DW_AT_type : <0x249> + <240> DW_AT_accessibility: 1 (public) + <241> DW_AT_declaration : 1 + <2><241>: Abbrev Number: 0 + <1><242>: Abbrev Number: 7 (DW_TAG_base_type) + <243> DW_AT_byte_size : 4 + <244> DW_AT_encoding : 5 (signed) + <245> DW_AT_name : int + <1><249>: Abbrev Number: 7 (DW_TAG_base_type) + <24a> DW_AT_byte_size : 1 + <24b> DW_AT_encoding : 2 (boolean) + <24c> DW_AT_name : bool + <1><251>: Abbrev Number: 15 (DW_TAG_pointer_type) + <252> DW_AT_byte_size : 8 + <253> DW_AT_type : signature: 0xb5faa2a4b7a919c4 + <1><25b>: Abbrev Number: 13 (DW_TAG_class_type) + <25c> DW_AT_name : C2 + <25f> DW_AT_signature : signature: 0xab98c7bc886f5266 + <267> DW_AT_declaration : 1 + <267> DW_AT_sibling : <0x294> + <2><26b>: Abbrev Number: 14 (DW_TAG_subprogram) + <26c> DW_AT_external : 1 + <26c> DW_AT_name : (indexed string: 0x0): testcase1 + <26d> DW_AT_decl_file : 1 + <26e> DW_AT_decl_line : 40 + <26f> DW_AT_linkage_name: (indexed string: 0x7): _ZN2C29testcase1Ev + <270> DW_AT_type : <0x249> + <274> DW_AT_accessibility: 1 (public) + <275> DW_AT_declaration : 1 + <2><275>: Abbrev Number: 14 (DW_TAG_subprogram) + <276> DW_AT_external : 1 + <276> DW_AT_name : (indexed string: 0x1): testcase2 + <277> DW_AT_decl_file : 1 + <278> DW_AT_decl_line : 41 + <279> DW_AT_linkage_name: (indexed string: 0x8): _ZN2C29testcase2Ev + <27a> DW_AT_type : <0x249> + <27e> DW_AT_accessibility: 1 (public) + <27f> DW_AT_declaration : 1 + <2><27f>: Abbrev Number: 14 (DW_TAG_subprogram) + <280> DW_AT_external : 1 + <280> DW_AT_name : (indexed string: 0x4): testcase3 + <281> DW_AT_decl_file : 1 + <282> DW_AT_decl_line : 42 + <283> DW_AT_linkage_name: (indexed string: 0x9): _ZN2C29testcase3Ev + <284> DW_AT_type : <0x249> + <288> DW_AT_accessibility: 1 (public) + <289> DW_AT_declaration : 1 + <2><289>: Abbrev Number: 14 (DW_TAG_subprogram) + <28a> DW_AT_external : 1 + <28a> DW_AT_name : (indexed string: 0xa): testcase4 + <28b> DW_AT_decl_file : 1 + <28c> DW_AT_decl_line : 43 + <28d> DW_AT_linkage_name: (indexed string: 0xb): _ZN2C29testcase4Ev + <28e> DW_AT_type : <0x249> + <292> DW_AT_accessibility: 1 (public) + <293> DW_AT_declaration : 1 + <2><293>: Abbrev Number: 0 + <1><294>: Abbrev Number: 15 (DW_TAG_pointer_type) + <295> DW_AT_byte_size : 8 + <296> DW_AT_type : signature: 0xab98c7bc886f5266 + <1><29e>: Abbrev Number: 13 (DW_TAG_class_type) + <29f> DW_AT_name : C3 + <2a2> DW_AT_signature : signature: 0xb534bdc1f01629bb + <2aa> DW_AT_declaration : 1 + <2aa> DW_AT_sibling : <0x2cd> + <2><2ae>: Abbrev Number: 14 (DW_TAG_subprogram) + <2af> DW_AT_external : 1 + <2af> DW_AT_name : (indexed string: 0x0): testcase1 + <2b0> DW_AT_decl_file : 1 + <2b1> DW_AT_decl_line : 50 + <2b2> DW_AT_linkage_name: (indexed string: 0x2): _ZN2C39testcase1Ev + <2b3> DW_AT_type : <0x249> + <2b7> DW_AT_accessibility: 1 (public) + <2b8> DW_AT_declaration : 1 + <2><2b8>: Abbrev Number: 14 (DW_TAG_subprogram) + <2b9> DW_AT_external : 1 + <2b9> DW_AT_name : (indexed string: 0x1): testcase2 + <2ba> DW_AT_decl_file : 1 + <2bb> DW_AT_decl_line : 51 + <2bc> DW_AT_linkage_name: (indexed string: 0x3): _ZN2C39testcase2Ev + <2bd> DW_AT_type : <0x249> + <2c1> DW_AT_accessibility: 1 (public) + <2c2> DW_AT_declaration : 1 + <2><2c2>: Abbrev Number: 14 (DW_TAG_subprogram) + <2c3> DW_AT_external : 1 + <2c3> DW_AT_name : (indexed string: 0x4): testcase3 + <2c4> DW_AT_decl_file : 1 + <2c5> DW_AT_decl_line : 52 + <2c6> DW_AT_linkage_name: (indexed string: 0x5): _ZN2C39testcase3Ev + <2c7> DW_AT_type : <0x249> + <2cb> DW_AT_accessibility: 1 (public) + <2cc> DW_AT_declaration : 1 + <2><2cc>: Abbrev Number: 0 + <1><2cd>: Abbrev Number: 15 (DW_TAG_pointer_type) + <2ce> DW_AT_byte_size : 8 + <2cf> DW_AT_type : signature: 0xb534bdc1f01629bb + <1><2d7>: Abbrev Number: 16 (DW_TAG_subprogram) + <2d8> DW_AT_external : 1 + <2d8> DW_AT_name : f13i + <2dd> DW_AT_decl_file : 1 + <2de> DW_AT_decl_line : 70 + <2df> DW_AT_linkage_name: _Z4f13iv + <2e8> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section> + <2e9> DW_AT_high_pc : 0x6 + <2f1> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <2f3> DW_AT_GNU_all_call_sites: 1 + <1><2f3>: Abbrev Number: 17 (DW_TAG_subprogram) + <2f4> DW_AT_specification: <0x219> + <2f8> DW_AT_decl_file : 2 + <2f9> DW_AT_decl_line : 30 + <2fa> DW_AT_low_pc : (addr_index: 0x1): <no .debug_addr section> + <2fb> DW_AT_high_pc : 0x20 + <303> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <305> DW_AT_object_pointer: <0x30d> + <309> DW_AT_GNU_all_tail_call_sites: 1 + <309> DW_AT_sibling : <0x317> + <2><30d>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <30e> DW_AT_name : (indexed string: 0x10): this + <30f> DW_AT_type : <0x317> + <313> DW_AT_artificial : 1 + <313> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><316>: Abbrev Number: 0 + <1><317>: Abbrev Number: 19 (DW_TAG_const_type) + <318> DW_AT_type : <0x251> + <1><31c>: Abbrev Number: 20 (DW_TAG_subprogram) + <31d> DW_AT_specification: <0x223> + <321> DW_AT_decl_file : 2 + <322> DW_AT_decl_line : 38 + <323> DW_AT_low_pc : (addr_index: 0x2): <no .debug_addr section> + <324> DW_AT_high_pc : 0x18 + <32c> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <32e> DW_AT_object_pointer: <0x336> + <332> DW_AT_GNU_all_call_sites: 1 + <332> DW_AT_sibling : <0x340> + <2><336>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <337> DW_AT_name : (indexed string: 0x10): this + <338> DW_AT_type : <0x317> + <33c> DW_AT_artificial : 1 + <33c> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><33f>: Abbrev Number: 0 + <1><340>: Abbrev Number: 20 (DW_TAG_subprogram) + <341> DW_AT_specification: <0x22d> + <345> DW_AT_decl_file : 2 + <346> DW_AT_decl_line : 46 + <347> DW_AT_low_pc : (addr_index: 0x3): <no .debug_addr section> + <348> DW_AT_high_pc : 0x18 + <350> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <352> DW_AT_object_pointer: <0x35a> + <356> DW_AT_GNU_all_call_sites: 1 + <356> DW_AT_sibling : <0x364> + <2><35a>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <35b> DW_AT_name : (indexed string: 0x10): this + <35c> DW_AT_type : <0x317> + <360> DW_AT_artificial : 1 + <360> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><363>: Abbrev Number: 0 + <1><364>: Abbrev Number: 20 (DW_TAG_subprogram) + <365> DW_AT_specification: <0x237> + <369> DW_AT_decl_file : 2 + <36a> DW_AT_decl_line : 54 + <36b> DW_AT_low_pc : (addr_index: 0x4): <no .debug_addr section> + <36c> DW_AT_high_pc : 0x16 + <374> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <376> DW_AT_object_pointer: <0x37e> + <37a> DW_AT_GNU_all_call_sites: 1 + <37a> DW_AT_sibling : <0x388> + <2><37e>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <37f> DW_AT_name : (indexed string: 0x10): this + <380> DW_AT_type : <0x317> + <384> DW_AT_artificial : 1 + <384> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><387>: Abbrev Number: 0 + <1><388>: Abbrev Number: 20 (DW_TAG_subprogram) + <389> DW_AT_specification: <0x26b> + <38d> DW_AT_decl_file : 2 + <38e> DW_AT_decl_line : 62 + <38f> DW_AT_low_pc : (addr_index: 0x5): <no .debug_addr section> + <390> DW_AT_high_pc : 0x16 + <398> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <39a> DW_AT_object_pointer: <0x3a2> + <39e> DW_AT_GNU_all_call_sites: 1 + <39e> DW_AT_sibling : <0x3ac> + <2><3a2>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <3a3> DW_AT_name : (indexed string: 0x10): this + <3a4> DW_AT_type : <0x3ac> + <3a8> DW_AT_artificial : 1 + <3a8> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><3ab>: Abbrev Number: 0 + <1><3ac>: Abbrev Number: 19 (DW_TAG_const_type) + <3ad> DW_AT_type : <0x294> + <1><3b1>: Abbrev Number: 20 (DW_TAG_subprogram) + <3b2> DW_AT_specification: <0x275> + <3b6> DW_AT_decl_file : 2 + <3b7> DW_AT_decl_line : 72 + <3b8> DW_AT_low_pc : (addr_index: 0x6): <no .debug_addr section> + <3b9> DW_AT_high_pc : 0x1b + <3c1> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <3c3> DW_AT_object_pointer: <0x3cb> + <3c7> DW_AT_GNU_all_call_sites: 1 + <3c7> DW_AT_sibling : <0x3d5> + <2><3cb>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <3cc> DW_AT_name : (indexed string: 0x10): this + <3cd> DW_AT_type : <0x3ac> + <3d1> DW_AT_artificial : 1 + <3d1> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><3d4>: Abbrev Number: 0 + <1><3d5>: Abbrev Number: 20 (DW_TAG_subprogram) + <3d6> DW_AT_specification: <0x27f> + <3da> DW_AT_decl_file : 2 + <3db> DW_AT_decl_line : 82 + <3dc> DW_AT_low_pc : (addr_index: 0x7): <no .debug_addr section> + <3dd> DW_AT_high_pc : 0x1b + <3e5> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <3e7> DW_AT_object_pointer: <0x3ef> + <3eb> DW_AT_GNU_all_call_sites: 1 + <3eb> DW_AT_sibling : <0x3f9> + <2><3ef>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <3f0> DW_AT_name : (indexed string: 0x10): this + <3f1> DW_AT_type : <0x3ac> + <3f5> DW_AT_artificial : 1 + <3f5> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><3f8>: Abbrev Number: 0 + <1><3f9>: Abbrev Number: 20 (DW_TAG_subprogram) + <3fa> DW_AT_specification: <0x289> + <3fe> DW_AT_decl_file : 2 + <3ff> DW_AT_decl_line : 92 + <400> DW_AT_low_pc : (addr_index: 0x8): <no .debug_addr section> + <401> DW_AT_high_pc : 0x19 + <409> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <40b> DW_AT_object_pointer: <0x413> + <40f> DW_AT_GNU_all_call_sites: 1 + <40f> DW_AT_sibling : <0x41d> + <2><413>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <414> DW_AT_name : (indexed string: 0x10): this + <415> DW_AT_type : <0x3ac> + <419> DW_AT_artificial : 1 + <419> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><41c>: Abbrev Number: 0 + <1><41d>: Abbrev Number: 20 (DW_TAG_subprogram) + <41e> DW_AT_specification: <0x2ae> + <422> DW_AT_decl_file : 2 + <423> DW_AT_decl_line : 102 + <424> DW_AT_low_pc : (addr_index: 0x9): <no .debug_addr section> + <425> DW_AT_high_pc : 0x19 + <42d> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <42f> DW_AT_object_pointer: <0x437> + <433> DW_AT_GNU_all_call_sites: 1 + <433> DW_AT_sibling : <0x441> + <2><437>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <438> DW_AT_name : (indexed string: 0x10): this + <439> DW_AT_type : <0x441> + <43d> DW_AT_artificial : 1 + <43d> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><440>: Abbrev Number: 0 + <1><441>: Abbrev Number: 19 (DW_TAG_const_type) + <442> DW_AT_type : <0x2cd> + <1><446>: Abbrev Number: 17 (DW_TAG_subprogram) + <447> DW_AT_specification: <0x2b8> + <44b> DW_AT_decl_file : 2 + <44c> DW_AT_decl_line : 112 + <44d> DW_AT_low_pc : (addr_index: 0xa): <no .debug_addr section> + <44e> DW_AT_high_pc : 0x1f + <456> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <458> DW_AT_object_pointer: <0x460> + <45c> DW_AT_GNU_all_tail_call_sites: 1 + <45c> DW_AT_sibling : <0x46a> + <2><460>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <461> DW_AT_name : (indexed string: 0x10): this + <462> DW_AT_type : <0x441> + <466> DW_AT_artificial : 1 + <466> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><469>: Abbrev Number: 0 + <1><46a>: Abbrev Number: 21 (DW_TAG_subprogram) + <46b> DW_AT_external : 1 + <46b> DW_AT_name : f11a + <470> DW_AT_decl_file : 2 + <471> DW_AT_decl_line : 120 + <472> DW_AT_linkage_name: _Z4f11av + <47b> DW_AT_type : <0x242> + <47f> DW_AT_low_pc : (addr_index: 0xb): <no .debug_addr section> + <480> DW_AT_high_pc : 0xb + <488> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <48a> DW_AT_GNU_all_call_sites: 1 + <1><48a>: Abbrev Number: 17 (DW_TAG_subprogram) + <48b> DW_AT_specification: <0x2c2> + <48f> DW_AT_decl_file : 2 + <490> DW_AT_decl_line : 126 + <491> DW_AT_low_pc : (addr_index: 0xc): <no .debug_addr section> + <492> DW_AT_high_pc : 0x20 + <49a> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <49c> DW_AT_object_pointer: <0x4a4> + <4a0> DW_AT_GNU_all_tail_call_sites: 1 + <4a0> DW_AT_sibling : <0x4ae> + <2><4a4>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <4a5> DW_AT_name : (indexed string: 0x10): this + <4a6> DW_AT_type : <0x441> + <4aa> DW_AT_artificial : 1 + <4aa> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><4ad>: Abbrev Number: 0 + <1><4ae>: Abbrev Number: 22 (DW_TAG_subprogram) + <4af> DW_AT_external : 1 + <4af> DW_AT_name : t12 + <4b3> DW_AT_decl_file : 2 + <4b4> DW_AT_decl_line : 134 + <4b5> DW_AT_linkage_name: _Z3t12v + <4bd> DW_AT_type : <0x249> + <4c1> DW_AT_low_pc : (addr_index: 0xd): <no .debug_addr section> + <4c2> DW_AT_high_pc : 0x19 + <4ca> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <4cc> DW_AT_GNU_all_tail_call_sites: 1 + <1><4cc>: Abbrev Number: 22 (DW_TAG_subprogram) + <4cd> DW_AT_external : 1 + <4cd> DW_AT_name : t13 + <4d1> DW_AT_decl_file : 2 + <4d2> DW_AT_decl_line : 142 + <4d3> DW_AT_linkage_name: _Z3t13v + <4db> DW_AT_type : <0x249> + <4df> DW_AT_low_pc : (addr_index: 0xe): <no .debug_addr section> + <4e0> DW_AT_high_pc : 0x14 + <4e8> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <4ea> DW_AT_GNU_all_tail_call_sites: 1 + <1><4ea>: Abbrev Number: 23 (DW_TAG_subprogram) + <4eb> DW_AT_external : 1 + <4eb> DW_AT_name : t14 + <4ef> DW_AT_decl_file : 2 + <4f0> DW_AT_decl_line : 150 + <4f1> DW_AT_linkage_name: _Z3t14v + <4f9> DW_AT_type : <0x249> + <4fd> DW_AT_low_pc : (addr_index: 0xf): <no .debug_addr section> + <4fe> DW_AT_high_pc : 0x61 + <506> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <508> DW_AT_GNU_all_tail_call_sites: 1 + <508> DW_AT_sibling : <0x532> + <2><50c>: Abbrev Number: 24 (DW_TAG_lexical_block) + <50d> DW_AT_low_pc : (addr_index: 0x10): <no .debug_addr section> + <50e> DW_AT_high_pc : 0x57 + <3><516>: Abbrev Number: 25 (DW_TAG_variable) + <517> DW_AT_name : s1 + <51a> DW_AT_decl_file : 2 + <51b> DW_AT_decl_line : 152 + <51c> DW_AT_type : <0x532> + <520> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <3><523>: Abbrev Number: 25 (DW_TAG_variable) + <524> DW_AT_name : s2 + <527> DW_AT_decl_file : 2 + <528> DW_AT_decl_line : 153 + <529> DW_AT_type : <0x532> + <52d> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32) + <3><530>: Abbrev Number: 0 + <2><531>: Abbrev Number: 0 + <1><532>: Abbrev Number: 8 (DW_TAG_pointer_type) + <533> DW_AT_byte_size : 8 + <534> DW_AT_type : <0x538> + <1><538>: Abbrev Number: 19 (DW_TAG_const_type) + <539> DW_AT_type : <0x53d> + <1><53d>: Abbrev Number: 7 (DW_TAG_base_type) + <53e> DW_AT_byte_size : 1 + <53f> DW_AT_encoding : 6 (signed char) + <540> DW_AT_name : char + <1><545>: Abbrev Number: 23 (DW_TAG_subprogram) + <546> DW_AT_external : 1 + <546> DW_AT_name : t15 + <54a> DW_AT_decl_file : 2 + <54b> DW_AT_decl_line : 163 + <54c> DW_AT_linkage_name: _Z3t15v + <554> DW_AT_type : <0x249> + <558> DW_AT_low_pc : (addr_index: 0x11): <no .debug_addr section> + <559> DW_AT_high_pc : 0x5d + <561> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <563> DW_AT_GNU_all_tail_call_sites: 1 + <563> DW_AT_sibling : <0x58d> + <2><567>: Abbrev Number: 24 (DW_TAG_lexical_block) + <568> DW_AT_low_pc : (addr_index: 0x12): <no .debug_addr section> + <569> DW_AT_high_pc : 0x53 + <3><571>: Abbrev Number: 25 (DW_TAG_variable) + <572> DW_AT_name : s1 + <575> DW_AT_decl_file : 2 + <576> DW_AT_decl_line : 165 + <577> DW_AT_type : <0x58d> + <57b> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <3><57e>: Abbrev Number: 25 (DW_TAG_variable) + <57f> DW_AT_name : s2 + <582> DW_AT_decl_file : 2 + <583> DW_AT_decl_line : 166 + <584> DW_AT_type : <0x58d> + <588> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32) + <3><58b>: Abbrev Number: 0 + <2><58c>: Abbrev Number: 0 + <1><58d>: Abbrev Number: 8 (DW_TAG_pointer_type) + <58e> DW_AT_byte_size : 8 + <58f> DW_AT_type : <0x593> + <1><593>: Abbrev Number: 19 (DW_TAG_const_type) + <594> DW_AT_type : <0x598> + <1><598>: Abbrev Number: 7 (DW_TAG_base_type) + <599> DW_AT_byte_size : 4 + <59a> DW_AT_encoding : 5 (signed) + <59b> DW_AT_name : wchar_t + <1><5a3>: Abbrev Number: 22 (DW_TAG_subprogram) + <5a4> DW_AT_external : 1 + <5a4> DW_AT_name : t16 + <5a8> DW_AT_decl_file : 2 + <5a9> DW_AT_decl_line : 176 + <5aa> DW_AT_linkage_name: _Z3t16v + <5b2> DW_AT_type : <0x249> + <5b6> DW_AT_low_pc : (addr_index: 0x13): <no .debug_addr section> + <5b7> DW_AT_high_pc : 0x13 + <5bf> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <5c1> DW_AT_GNU_all_tail_call_sites: 1 + <1><5c1>: Abbrev Number: 26 (DW_TAG_subprogram) + <5c2> DW_AT_external : 1 + <5c2> DW_AT_name : t17 + <5c6> DW_AT_decl_file : 2 + <5c7> DW_AT_decl_line : 184 + <5c8> DW_AT_linkage_name: _Z3t17v + <5d0> DW_AT_type : <0x249> + <5d4> DW_AT_low_pc : (addr_index: 0x14): <no .debug_addr section> + <5d5> DW_AT_high_pc : 0x5f + <5dd> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <5df> DW_AT_GNU_all_call_sites: 1 + <5df> DW_AT_sibling : <0x612> + <2><5e3>: Abbrev Number: 24 (DW_TAG_lexical_block) + <5e4> DW_AT_low_pc : (addr_index: 0x15): <no .debug_addr section> + <5e5> DW_AT_high_pc : 0x59 + <3><5ed>: Abbrev Number: 25 (DW_TAG_variable) + <5ee> DW_AT_name : c + <5f0> DW_AT_decl_file : 2 + <5f1> DW_AT_decl_line : 186 + <5f2> DW_AT_type : <0x53d> + <5f6> DW_AT_location : 2 byte block: 91 6f (DW_OP_fbreg: -17) + <3><5f9>: Abbrev Number: 24 (DW_TAG_lexical_block) + <5fa> DW_AT_low_pc : (addr_index: 0x16): <no .debug_addr section> + <5fb> DW_AT_high_pc : 0x50 + <4><603>: Abbrev Number: 25 (DW_TAG_variable) + <604> DW_AT_name : i + <606> DW_AT_decl_file : 2 + <607> DW_AT_decl_line : 187 + <608> DW_AT_type : <0x242> + <60c> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <4><60f>: Abbrev Number: 0 + <3><610>: Abbrev Number: 0 + <2><611>: Abbrev Number: 0 + <1><612>: Abbrev Number: 23 (DW_TAG_subprogram) + <613> DW_AT_external : 1 + <613> DW_AT_name : t18 + <617> DW_AT_decl_file : 2 + <618> DW_AT_decl_line : 199 + <619> DW_AT_linkage_name: _Z3t18v + <621> DW_AT_type : <0x249> + <625> DW_AT_low_pc : (addr_index: 0x17): <no .debug_addr section> + <626> DW_AT_high_pc : 0x5f + <62e> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <630> DW_AT_GNU_all_tail_call_sites: 1 + <630> DW_AT_sibling : <0x67a> + <2><634>: Abbrev Number: 24 (DW_TAG_lexical_block) + <635> DW_AT_low_pc : (addr_index: 0x18): <no .debug_addr section> + <636> DW_AT_high_pc : 0x55 + <3><63e>: Abbrev Number: 25 (DW_TAG_variable) + <63f> DW_AT_name : c + <641> DW_AT_decl_file : 2 + <642> DW_AT_decl_line : 201 + <643> DW_AT_type : <0x53d> + <647> DW_AT_location : 2 byte block: 91 6f (DW_OP_fbreg: -17) + <3><64a>: Abbrev Number: 24 (DW_TAG_lexical_block) + <64b> DW_AT_low_pc : (addr_index: 0x19): <no .debug_addr section> + <64c> DW_AT_high_pc : 0x4c + <4><654>: Abbrev Number: 25 (DW_TAG_variable) + <655> DW_AT_name : i + <657> DW_AT_decl_file : 2 + <658> DW_AT_decl_line : 202 + <659> DW_AT_type : <0x242> + <65d> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <4><660>: Abbrev Number: 24 (DW_TAG_lexical_block) + <661> DW_AT_low_pc : (addr_index: 0x1a): <no .debug_addr section> + <662> DW_AT_high_pc : 0x34 + <5><66a>: Abbrev Number: 25 (DW_TAG_variable) + <66b> DW_AT_name : s + <66d> DW_AT_decl_file : 2 + <66e> DW_AT_decl_line : 204 + <66f> DW_AT_type : <0x532> + <673> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32) + <5><676>: Abbrev Number: 0 + <4><677>: Abbrev Number: 0 + <3><678>: Abbrev Number: 0 + <2><679>: Abbrev Number: 0 + <1><67a>: Abbrev Number: 27 (DW_TAG_variable) + <67b> DW_AT_name : c3 + <67e> DW_AT_decl_file : 1 + <67f> DW_AT_decl_line : 57 + <680> DW_AT_type : signature: 0xb534bdc1f01629bb + <688> DW_AT_external : 1 + <688> DW_AT_declaration : 1 + <1><688>: Abbrev Number: 28 (DW_TAG_variable) + <689> DW_AT_name : v2 + <68c> DW_AT_decl_file : 1 + <68d> DW_AT_decl_line : 59 + <68e> DW_AT_type : <0x242> + <692> DW_AT_external : 1 + <692> DW_AT_declaration : 1 + <1><692>: Abbrev Number: 28 (DW_TAG_variable) + <693> DW_AT_name : v3 + <696> DW_AT_decl_file : 1 + <697> DW_AT_decl_line : 60 + <698> DW_AT_type : <0x242> + <69c> DW_AT_external : 1 + <69c> DW_AT_declaration : 1 + <1><69c>: Abbrev Number: 29 (DW_TAG_array_type) + <69d> DW_AT_type : <0x53d> + <6a1> DW_AT_sibling : <0x6a7> + <2><6a5>: Abbrev Number: 30 (DW_TAG_subrange_type) + <2><6a6>: Abbrev Number: 0 + <1><6a7>: Abbrev Number: 28 (DW_TAG_variable) + <6a8> DW_AT_name : v4 + <6ab> DW_AT_decl_file : 1 + <6ac> DW_AT_decl_line : 61 + <6ad> DW_AT_type : <0x69c> + <6b1> DW_AT_external : 1 + <6b1> DW_AT_declaration : 1 + <1><6b1>: Abbrev Number: 28 (DW_TAG_variable) + <6b2> DW_AT_name : v5 + <6b5> DW_AT_decl_file : 1 + <6b6> DW_AT_decl_line : 62 + <6b7> DW_AT_type : <0x69c> + <6bb> DW_AT_external : 1 + <6bb> DW_AT_declaration : 1 + <1><6bb>: Abbrev Number: 29 (DW_TAG_array_type) + <6bc> DW_AT_type : <0x532> + <6c0> DW_AT_sibling : <0x6c6> + <2><6c4>: Abbrev Number: 30 (DW_TAG_subrange_type) + <2><6c5>: Abbrev Number: 0 + <1><6c6>: Abbrev Number: 28 (DW_TAG_variable) + <6c7> DW_AT_name : t17data + <6cf> DW_AT_decl_file : 1 + <6d0> DW_AT_decl_line : 83 + <6d1> DW_AT_type : <0x6bb> + <6d5> DW_AT_external : 1 + <6d5> DW_AT_declaration : 1 + <1><6d5>: Abbrev Number: 31 (DW_TAG_variable) + <6d6> DW_AT_name : p6 + <6d9> DW_AT_decl_file : 2 + <6da> DW_AT_decl_line : 69 + <6db> DW_AT_type : <0x6e2> + <6df> DW_AT_external : 1 + <6df> DW_AT_location : 2 byte block: fb 1b (DW_OP_GNU_addr_index <0x1b>) + <1><6e2>: Abbrev Number: 8 (DW_TAG_pointer_type) + <6e3> DW_AT_byte_size : 8 + <6e4> DW_AT_type : <0x242> + <1><6e8>: Abbrev Number: 31 (DW_TAG_variable) + <6e9> DW_AT_name : p7 + <6ec> DW_AT_decl_file : 2 + <6ed> DW_AT_decl_line : 79 + <6ee> DW_AT_type : <0x6e2> + <6f2> DW_AT_external : 1 + <6f2> DW_AT_location : 2 byte block: fb 1c (DW_OP_GNU_addr_index <0x1c>) + <1><6f5>: Abbrev Number: 31 (DW_TAG_variable) + <6f6> DW_AT_name : p8 + <6f9> DW_AT_decl_file : 2 + <6fa> DW_AT_decl_line : 89 + <6fb> DW_AT_type : <0x702> + <6ff> DW_AT_external : 1 + <6ff> DW_AT_location : 2 byte block: fb 1d (DW_OP_GNU_addr_index <0x1d>) + <1><702>: Abbrev Number: 8 (DW_TAG_pointer_type) + <703> DW_AT_byte_size : 8 + <704> DW_AT_type : <0x53d> + <1><708>: Abbrev Number: 31 (DW_TAG_variable) + <709> DW_AT_name : p9 + <70c> DW_AT_decl_file : 2 + <70d> DW_AT_decl_line : 99 + <70e> DW_AT_type : <0x702> + <712> DW_AT_external : 1 + <712> DW_AT_location : 2 byte block: fb 1e (DW_OP_GNU_addr_index <0x1e>) + <1><715>: Abbrev Number: 9 (DW_TAG_subroutine_type) + <716> DW_AT_type : <0x242> + <1><71a>: Abbrev Number: 31 (DW_TAG_variable) + <71b> DW_AT_name : pfn + <71f> DW_AT_decl_file : 2 + <720> DW_AT_decl_line : 109 + <721> DW_AT_type : <0x728> + <725> DW_AT_external : 1 + <725> DW_AT_location : 2 byte block: fb 1f (DW_OP_GNU_addr_index <0x1f>) + <1><728>: Abbrev Number: 8 (DW_TAG_pointer_type) + <729> DW_AT_byte_size : 8 + <72a> DW_AT_type : <0x715> + <1><72e>: Abbrev Number: 0 + Compilation Unit @ offset 0x72f: + Length: 0xcb (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Section contributions: + .debug_abbrev.dwo: 0x371 0xbd + .debug_line.dwo: 0x7d 0x3e + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x0 0x0 + <0><73a>: Abbrev Number: 10 (DW_TAG_compile_unit) + <73b> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease) + <766> DW_AT_language : 4 (C++) + <767> DW_AT_name : dwp_test_1b.cc + <776> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite + <7b5> DW_AT_GNU_dwo_id : 0xbd6ec13ea247eff6 + <1><7bd>: Abbrev Number: 7 (DW_TAG_base_type) + <7be> DW_AT_byte_size : 4 + <7bf> DW_AT_encoding : 5 (signed) + <7c0> DW_AT_name : int + <1><7c4>: Abbrev Number: 7 (DW_TAG_base_type) + <7c5> DW_AT_byte_size : 1 + <7c6> DW_AT_encoding : 2 (boolean) + <7c7> DW_AT_name : bool + <1><7cc>: Abbrev Number: 11 (DW_TAG_subprogram) + <7cd> DW_AT_external : 1 + <7cd> DW_AT_name : t16a + <7d2> DW_AT_decl_file : 1 + <7d3> DW_AT_decl_line : 32 + <7d4> DW_AT_linkage_name: _Z4t16av + <7dd> DW_AT_type : <0x7c4> + <7e1> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section> + <7e2> DW_AT_high_pc : 0x13 + <7ea> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <7ec> DW_AT_GNU_all_tail_call_sites: 1 + <1><7ec>: Abbrev Number: 12 (DW_TAG_variable) + <7ed> DW_AT_name : c3 + <7f0> DW_AT_decl_file : 1 + <7f1> DW_AT_decl_line : 29 + <7f2> DW_AT_type : signature: 0xb534bdc1f01629bb + <7fa> DW_AT_external : 1 + <7fa> DW_AT_location : 2 byte block: fb 1 (DW_OP_GNU_addr_index <0x1>) + <1><7fd>: Abbrev Number: 0 + Compilation Unit @ offset 0x7fe: + Length: 0x329 (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Section contributions: + .debug_abbrev.dwo: 0x42e 0x1f2 + .debug_line.dwo: 0xbb 0x3d + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x58 0x18 + <0><809>: Abbrev Number: 12 (DW_TAG_compile_unit) + <80a> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease) + <835> DW_AT_language : 4 (C++) + <836> DW_AT_name : dwp_test_2.cc + <844> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite + <883> DW_AT_GNU_dwo_id : 0xcf0cab718ce0f8b9 + <1><88b>: Abbrev Number: 13 (DW_TAG_class_type) + <88c> DW_AT_name : C1 + <88f> DW_AT_signature : signature: 0xb5faa2a4b7a919c4 + <897> DW_AT_declaration : 1 + <897> DW_AT_sibling : <0x8b7> + <2><89b>: Abbrev Number: 14 (DW_TAG_subprogram) + <89c> DW_AT_external : 1 + <89c> DW_AT_name : t1a + <8a0> DW_AT_decl_file : 1 + <8a1> DW_AT_decl_line : 29 + <8a2> DW_AT_linkage_name: (indexed string: 0x4): _ZN2C13t1aEv + <8a3> DW_AT_type : <0x8be> + <8a7> DW_AT_accessibility: 1 (public) + <8a8> DW_AT_declaration : 1 + <2><8a8>: Abbrev Number: 14 (DW_TAG_subprogram) + <8a9> DW_AT_external : 1 + <8a9> DW_AT_name : t1_2 + <8ae> DW_AT_decl_file : 1 + <8af> DW_AT_decl_line : 30 + <8b0> DW_AT_linkage_name: (indexed string: 0x5): _ZN2C14t1_2Ev + <8b1> DW_AT_type : <0x8b7> + <8b5> DW_AT_accessibility: 1 (public) + <8b6> DW_AT_declaration : 1 + <2><8b6>: Abbrev Number: 0 + <1><8b7>: Abbrev Number: 7 (DW_TAG_base_type) + <8b8> DW_AT_byte_size : 4 + <8b9> DW_AT_encoding : 5 (signed) + <8ba> DW_AT_name : int + <1><8be>: Abbrev Number: 7 (DW_TAG_base_type) + <8bf> DW_AT_byte_size : 1 + <8c0> DW_AT_encoding : 2 (boolean) + <8c1> DW_AT_name : bool + <1><8c6>: Abbrev Number: 15 (DW_TAG_pointer_type) + <8c7> DW_AT_byte_size : 8 + <8c8> DW_AT_type : signature: 0xb5faa2a4b7a919c4 + <1><8d0>: Abbrev Number: 13 (DW_TAG_class_type) + <8d1> DW_AT_name : C3 + <8d4> DW_AT_signature : signature: 0xb534bdc1f01629bb + <8dc> DW_AT_declaration : 1 + <8dc> DW_AT_sibling : <0x8ed> + <2><8e0>: Abbrev Number: 14 (DW_TAG_subprogram) + <8e1> DW_AT_external : 1 + <8e1> DW_AT_name : f4 + <8e4> DW_AT_decl_file : 1 + <8e5> DW_AT_decl_line : 53 + <8e6> DW_AT_linkage_name: (indexed string: 0x3): _ZN2C32f4Ev + <8e7> DW_AT_type : <0x8fc> + <8eb> DW_AT_accessibility: 1 (public) + <8ec> DW_AT_declaration : 1 + <2><8ec>: Abbrev Number: 0 + <1><8ed>: Abbrev Number: 15 (DW_TAG_pointer_type) + <8ee> DW_AT_byte_size : 8 + <8ef> DW_AT_type : signature: 0xb534bdc1f01629bb + <1><8f7>: Abbrev Number: 9 (DW_TAG_subroutine_type) + <8f8> DW_AT_type : <0x8be> + <1><8fc>: Abbrev Number: 8 (DW_TAG_pointer_type) + <8fd> DW_AT_byte_size : 8 + <8fe> DW_AT_type : <0x8f7> + <1><902>: Abbrev Number: 16 (DW_TAG_subprogram) + <903> DW_AT_external : 1 + <903> DW_AT_name : f13i + <908> DW_AT_decl_file : 1 + <909> DW_AT_decl_line : 70 + <90a> DW_AT_linkage_name: _Z4f13iv + <913> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section> + <914> DW_AT_high_pc : 0x6 + <91c> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <91e> DW_AT_GNU_all_call_sites: 1 + <1><91e>: Abbrev Number: 17 (DW_TAG_subprogram) + <91f> DW_AT_specification: <0x8a8> + <923> DW_AT_decl_file : 2 + <924> DW_AT_low_pc : (addr_index: 0x1): <no .debug_addr section> + <925> DW_AT_high_pc : 0xf + <92d> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <92f> DW_AT_object_pointer: <0x937> + <933> DW_AT_GNU_all_call_sites: 1 + <933> DW_AT_sibling : <0x945> + <2><937>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <938> DW_AT_name : this + <93d> DW_AT_type : <0x945> + <941> DW_AT_artificial : 1 + <941> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><944>: Abbrev Number: 0 + <1><945>: Abbrev Number: 19 (DW_TAG_const_type) + <946> DW_AT_type : <0x8c6> + <1><94a>: Abbrev Number: 20 (DW_TAG_subprogram) + <94b> DW_AT_specification: <0x89b> + <94f> DW_AT_decl_file : 2 + <950> DW_AT_decl_line : 36 + <951> DW_AT_low_pc : (addr_index: 0x2): <no .debug_addr section> + <952> DW_AT_high_pc : 0x20 + <95a> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <95c> DW_AT_object_pointer: <0x964> + <960> DW_AT_GNU_all_tail_call_sites: 1 + <960> DW_AT_sibling : <0x972> + <2><964>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <965> DW_AT_name : this + <96a> DW_AT_type : <0x945> + <96e> DW_AT_artificial : 1 + <96e> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><971>: Abbrev Number: 0 + <1><972>: Abbrev Number: 21 (DW_TAG_subprogram) + <973> DW_AT_external : 1 + <973> DW_AT_name : f10 + <977> DW_AT_decl_file : 2 + <978> DW_AT_decl_line : 72 + <979> DW_AT_linkage_name: _Z3f10v + <981> DW_AT_type : <0x8b7> + <985> DW_AT_low_pc : (addr_index: 0x3): <no .debug_addr section> + <986> DW_AT_high_pc : 0xb + <98e> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <990> DW_AT_GNU_all_call_sites: 1 + <1><990>: Abbrev Number: 22 (DW_TAG_subprogram) + <991> DW_AT_external : 1 + <991> DW_AT_name : f11b + <996> DW_AT_decl_file : 2 + <997> DW_AT_decl_line : 80 + <998> DW_AT_linkage_name: _Z4f11bPFivE + <9a5> DW_AT_type : <0x8b7> + <9a9> DW_AT_low_pc : (addr_index: 0x4): <no .debug_addr section> + <9aa> DW_AT_high_pc : 0x14 + <9b2> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <9b4> DW_AT_GNU_all_tail_call_sites: 1 + <9b4> DW_AT_sibling : <0x9c7> + <2><9b8>: Abbrev Number: 23 (DW_TAG_formal_parameter) + <9b9> DW_AT_name : pfn + <9bd> DW_AT_decl_file : 2 + <9be> DW_AT_decl_line : 80 + <9bf> DW_AT_type : <0x9cc> + <9c3> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><9c6>: Abbrev Number: 0 + <1><9c7>: Abbrev Number: 9 (DW_TAG_subroutine_type) + <9c8> DW_AT_type : <0x8b7> + <1><9cc>: Abbrev Number: 8 (DW_TAG_pointer_type) + <9cd> DW_AT_byte_size : 8 + <9ce> DW_AT_type : <0x9c7> + <1><9d2>: Abbrev Number: 24 (DW_TAG_subprogram) + <9d3> DW_AT_specification: <0x8e0> + <9d7> DW_AT_decl_file : 2 + <9d8> DW_AT_decl_line : 88 + <9d9> DW_AT_low_pc : (addr_index: 0x5): <no .debug_addr section> + <9da> DW_AT_high_pc : 0xf + <9e2> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <9e4> DW_AT_object_pointer: <0x9ec> + <9e8> DW_AT_GNU_all_call_sites: 1 + <9e8> DW_AT_sibling : <0x9fa> + <2><9ec>: Abbrev Number: 18 (DW_TAG_formal_parameter) + <9ed> DW_AT_name : this + <9f2> DW_AT_type : <0x9fa> + <9f6> DW_AT_artificial : 1 + <9f6> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24) + <2><9f9>: Abbrev Number: 0 + <1><9fa>: Abbrev Number: 19 (DW_TAG_const_type) + <9fb> DW_AT_type : <0x8ed> + <1><9ff>: Abbrev Number: 25 (DW_TAG_subroutine_type) + <1><a00>: Abbrev Number: 21 (DW_TAG_subprogram) + <a01> DW_AT_external : 1 + <a01> DW_AT_name : f13 + <a05> DW_AT_decl_file : 2 + <a06> DW_AT_decl_line : 96 + <a07> DW_AT_linkage_name: _Z3f13v + <a0f> DW_AT_type : <0xa1e> + <a13> DW_AT_low_pc : (addr_index: 0x6): <no .debug_addr section> + <a14> DW_AT_high_pc : 0xb + <a1c> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <a1e> DW_AT_GNU_all_call_sites: 1 + <1><a1e>: Abbrev Number: 8 (DW_TAG_pointer_type) + <a1f> DW_AT_byte_size : 8 + <a20> DW_AT_type : <0x9ff> + <1><a24>: Abbrev Number: 21 (DW_TAG_subprogram) + <a25> DW_AT_external : 1 + <a25> DW_AT_name : f14 + <a29> DW_AT_decl_file : 2 + <a2a> DW_AT_decl_line : 104 + <a2b> DW_AT_linkage_name: _Z3f14v + <a33> DW_AT_type : <0xa42> + <a37> DW_AT_low_pc : (addr_index: 0x7): <no .debug_addr section> + <a38> DW_AT_high_pc : 0xb + <a40> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <a42> DW_AT_GNU_all_call_sites: 1 + <1><a42>: Abbrev Number: 8 (DW_TAG_pointer_type) + <a43> DW_AT_byte_size : 8 + <a44> DW_AT_type : <0xa48> + <1><a48>: Abbrev Number: 19 (DW_TAG_const_type) + <a49> DW_AT_type : <0xa4d> + <1><a4d>: Abbrev Number: 7 (DW_TAG_base_type) + <a4e> DW_AT_byte_size : 1 + <a4f> DW_AT_encoding : 6 (signed char) + <a50> DW_AT_name : char + <1><a55>: Abbrev Number: 21 (DW_TAG_subprogram) + <a56> DW_AT_external : 1 + <a56> DW_AT_name : f15 + <a5a> DW_AT_decl_file : 2 + <a5b> DW_AT_decl_line : 112 + <a5c> DW_AT_linkage_name: _Z3f15v + <a64> DW_AT_type : <0xa73> + <a68> DW_AT_low_pc : (addr_index: 0x8): <no .debug_addr section> + <a69> DW_AT_high_pc : 0xb + <a71> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <a73> DW_AT_GNU_all_call_sites: 1 + <1><a73>: Abbrev Number: 8 (DW_TAG_pointer_type) + <a74> DW_AT_byte_size : 8 + <a75> DW_AT_type : <0xa79> + <1><a79>: Abbrev Number: 19 (DW_TAG_const_type) + <a7a> DW_AT_type : <0xa7e> + <1><a7e>: Abbrev Number: 7 (DW_TAG_base_type) + <a7f> DW_AT_byte_size : 4 + <a80> DW_AT_encoding : 5 (signed) + <a81> DW_AT_name : wchar_t + <1><a89>: Abbrev Number: 26 (DW_TAG_subprogram) + <a8a> DW_AT_external : 1 + <a8a> DW_AT_name : f18 + <a8e> DW_AT_decl_file : 2 + <a8f> DW_AT_decl_line : 127 + <a90> DW_AT_linkage_name: _Z3f18i + <a98> DW_AT_type : <0xa42> + <a9c> DW_AT_low_pc : (addr_index: 0x9): <no .debug_addr section> + <a9d> DW_AT_high_pc : 0x44 + <aa5> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) + <aa7> DW_AT_GNU_all_call_sites: 1 + <aa7> DW_AT_sibling : <0xab8> + <2><aab>: Abbrev Number: 23 (DW_TAG_formal_parameter) + <aac> DW_AT_name : i + <aae> DW_AT_decl_file : 2 + <aaf> DW_AT_decl_line : 127 + <ab0> DW_AT_type : <0x8b7> + <ab4> DW_AT_location : 2 byte block: 91 6c (DW_OP_fbreg: -20) + <2><ab7>: Abbrev Number: 0 + <1><ab8>: Abbrev Number: 27 (DW_TAG_variable) + <ab9> DW_AT_name : v2 + <abc> DW_AT_decl_file : 2 + <abd> DW_AT_decl_line : 43 + <abe> DW_AT_type : <0x8b7> + <ac2> DW_AT_external : 1 + <ac2> DW_AT_location : 2 byte block: fb a (DW_OP_GNU_addr_index <0xa>) + <1><ac5>: Abbrev Number: 27 (DW_TAG_variable) + <ac6> DW_AT_name : v3 + <ac9> DW_AT_decl_file : 2 + <aca> DW_AT_decl_line : 48 + <acb> DW_AT_type : <0x8b7> + <acf> DW_AT_external : 1 + <acf> DW_AT_location : 2 byte block: fb b (DW_OP_GNU_addr_index <0xb>) + <1><ad2>: Abbrev Number: 28 (DW_TAG_array_type) + <ad3> DW_AT_type : <0xa4d> + <ad7> DW_AT_sibling : <0xae2> + <2><adb>: Abbrev Number: 29 (DW_TAG_subrange_type) + <adc> DW_AT_type : <0xae2> + <ae0> DW_AT_upper_bound : 12 + <2><ae1>: Abbrev Number: 0 + <1><ae2>: Abbrev Number: 7 (DW_TAG_base_type) + <ae3> DW_AT_byte_size : 8 + <ae4> DW_AT_encoding : 7 (unsigned) + <ae5> DW_AT_name : sizetype + <1><aee>: Abbrev Number: 27 (DW_TAG_variable) + <aef> DW_AT_name : v4 + <af2> DW_AT_decl_file : 2 + <af3> DW_AT_decl_line : 52 + <af4> DW_AT_type : <0xad2> + <af8> DW_AT_external : 1 + <af8> DW_AT_location : 2 byte block: fb c (DW_OP_GNU_addr_index <0xc>) + <1><afb>: Abbrev Number: 27 (DW_TAG_variable) + <afc> DW_AT_name : v5 + <aff> DW_AT_decl_file : 2 + <b00> DW_AT_decl_line : 57 + <b01> DW_AT_type : <0xad2> + <b05> DW_AT_external : 1 + <b05> DW_AT_location : 2 byte block: fb d (DW_OP_GNU_addr_index <0xd>) + <1><b08>: Abbrev Number: 28 (DW_TAG_array_type) + <b09> DW_AT_type : <0xa42> + <b0d> DW_AT_sibling : <0xb18> + <2><b11>: Abbrev Number: 29 (DW_TAG_subrange_type) + <b12> DW_AT_type : <0xae2> + <b16> DW_AT_upper_bound : 4 + <2><b17>: Abbrev Number: 0 + <1><b18>: Abbrev Number: 27 (DW_TAG_variable) + <b19> DW_AT_name : t17data + <b21> DW_AT_decl_file : 2 + <b22> DW_AT_decl_line : 119 + <b23> DW_AT_type : <0xb08> + <b27> DW_AT_external : 1 + <b27> DW_AT_location : 2 byte block: fb e (DW_OP_GNU_addr_index <0xe>) + <1><b2a>: Abbrev Number: 0 + +Contents of the .debug_types.dwo section: + + Compilation Unit @ offset 0x0: + Length: 0xf7 (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Signature: 0xb534bdc1f01629bb + Type Offset: 0x25 + Section contributions: + .debug_abbrev.dwo: 0x0 0x154 + .debug_line.dwo: 0x0 0x40 + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x0 0x14 + <0><17>: Abbrev Number: 1 (DW_TAG_type_unit) + <18> DW_AT_language : 4 (C++) + <19> DW_AT_GNU_odr_signature: 0x880a5c4d6e59da8a + <21> DW_AT_stmt_list : 0x0 + <1><25>: Abbrev Number: 2 (DW_TAG_class_type) + <26> DW_AT_name : C3 + <29> DW_AT_byte_size : 4 + <2a> DW_AT_decl_file : 2 + <2b> DW_AT_decl_line : 47 + <2c> DW_AT_sibling : <0xda> + <2><30>: Abbrev Number: 3 (DW_TAG_member) + <31> DW_AT_name : (indexed string: 0x3): member1 + <32> DW_AT_decl_file : 2 + <33> DW_AT_decl_line : 54 + <34> DW_AT_type : <0xda> + <38> DW_AT_data_member_location: 0 + <39> DW_AT_accessibility: 1 (public) + <2><3a>: Abbrev Number: 4 (DW_TAG_subprogram) + <3b> DW_AT_external : 1 + <3b> DW_AT_name : (indexed string: 0x0): testcase1 + <3c> DW_AT_decl_file : 2 + <3d> DW_AT_decl_line : 50 + <3e> DW_AT_linkage_name: _ZN2C39testcase1Ev + <51> DW_AT_type : <0xe1> + <55> DW_AT_accessibility: 1 (public) + <56> DW_AT_declaration : 1 + <56> DW_AT_object_pointer: <0x5e> + <5a> DW_AT_sibling : <0x64> + <3><5e>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <5f> DW_AT_type : <0xe9> + <63> DW_AT_artificial : 1 + <3><63>: Abbrev Number: 0 + <2><64>: Abbrev Number: 4 (DW_TAG_subprogram) + <65> DW_AT_external : 1 + <65> DW_AT_name : (indexed string: 0x1): testcase2 + <66> DW_AT_decl_file : 2 + <67> DW_AT_decl_line : 51 + <68> DW_AT_linkage_name: _ZN2C39testcase2Ev + <7b> DW_AT_type : <0xe1> + <7f> DW_AT_accessibility: 1 (public) + <80> DW_AT_declaration : 1 + <80> DW_AT_object_pointer: <0x88> + <84> DW_AT_sibling : <0x8e> + <3><88>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <89> DW_AT_type : <0xe9> + <8d> DW_AT_artificial : 1 + <3><8d>: Abbrev Number: 0 + <2><8e>: Abbrev Number: 4 (DW_TAG_subprogram) + <8f> DW_AT_external : 1 + <8f> DW_AT_name : (indexed string: 0x2): testcase3 + <90> DW_AT_decl_file : 2 + <91> DW_AT_decl_line : 52 + <92> DW_AT_linkage_name: _ZN2C39testcase3Ev + <a5> DW_AT_type : <0xe1> + <a9> DW_AT_accessibility: 1 (public) + <aa> DW_AT_declaration : 1 + <aa> DW_AT_object_pointer: <0xb2> + <ae> DW_AT_sibling : <0xb8> + <3><b2>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <b3> DW_AT_type : <0xe9> + <b7> DW_AT_artificial : 1 + <3><b7>: Abbrev Number: 0 + <2><b8>: Abbrev Number: 6 (DW_TAG_subprogram) + <b9> DW_AT_external : 1 + <b9> DW_AT_name : f4 + <bc> DW_AT_decl_file : 2 + <bd> DW_AT_decl_line : 53 + <be> DW_AT_linkage_name: _ZN2C32f4Ev + <ca> DW_AT_type : <0xef> + <ce> DW_AT_accessibility: 1 (public) + <cf> DW_AT_declaration : 1 + <cf> DW_AT_object_pointer: <0xd3> + <3><d3>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <d4> DW_AT_type : <0xe9> + <d8> DW_AT_artificial : 1 + <3><d8>: Abbrev Number: 0 + <2><d9>: Abbrev Number: 0 + <1><da>: Abbrev Number: 7 (DW_TAG_base_type) + <db> DW_AT_byte_size : 4 + <dc> DW_AT_encoding : 5 (signed) + <dd> DW_AT_name : int + <1><e1>: Abbrev Number: 7 (DW_TAG_base_type) + <e2> DW_AT_byte_size : 1 + <e3> DW_AT_encoding : 2 (boolean) + <e4> DW_AT_name : bool + <1><e9>: Abbrev Number: 8 (DW_TAG_pointer_type) + <ea> DW_AT_byte_size : 8 + <eb> DW_AT_type : <0x25> + <1><ef>: Abbrev Number: 8 (DW_TAG_pointer_type) + <f0> DW_AT_byte_size : 8 + <f1> DW_AT_type : <0xf5> + <1><f5>: Abbrev Number: 9 (DW_TAG_subroutine_type) + <f6> DW_AT_type : <0xe1> + <1><fa>: Abbrev Number: 0 + Compilation Unit @ offset 0xfb: + Length: 0xf1 (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Signature: 0xab98c7bc886f5266 + Type Offset: 0x25 + Section contributions: + .debug_abbrev.dwo: 0x0 0x154 + .debug_line.dwo: 0x0 0x40 + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x0 0x14 + <0><112>: Abbrev Number: 1 (DW_TAG_type_unit) + <113> DW_AT_language : 4 (C++) + <114> DW_AT_GNU_odr_signature: 0xae4af0d8bfcef94b + <11c> DW_AT_stmt_list : 0x0 + <1><120>: Abbrev Number: 2 (DW_TAG_class_type) + <121> DW_AT_name : C2 + <124> DW_AT_byte_size : 4 + <125> DW_AT_decl_file : 2 + <126> DW_AT_decl_line : 37 + <127> DW_AT_sibling : <0x1da> + <2><12b>: Abbrev Number: 3 (DW_TAG_member) + <12c> DW_AT_name : (indexed string: 0x3): member1 + <12d> DW_AT_decl_file : 2 + <12e> DW_AT_decl_line : 44 + <12f> DW_AT_type : <0x1da> + <133> DW_AT_data_member_location: 0 + <134> DW_AT_accessibility: 1 (public) + <2><135>: Abbrev Number: 4 (DW_TAG_subprogram) + <136> DW_AT_external : 1 + <136> DW_AT_name : (indexed string: 0x0): testcase1 + <137> DW_AT_decl_file : 2 + <138> DW_AT_decl_line : 40 + <139> DW_AT_linkage_name: _ZN2C29testcase1Ev + <14c> DW_AT_type : <0x1e1> + <150> DW_AT_accessibility: 1 (public) + <151> DW_AT_declaration : 1 + <151> DW_AT_object_pointer: <0x159> + <155> DW_AT_sibling : <0x15f> + <3><159>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <15a> DW_AT_type : <0x1e9> + <15e> DW_AT_artificial : 1 + <3><15e>: Abbrev Number: 0 + <2><15f>: Abbrev Number: 4 (DW_TAG_subprogram) + <160> DW_AT_external : 1 + <160> DW_AT_name : (indexed string: 0x1): testcase2 + <161> DW_AT_decl_file : 2 + <162> DW_AT_decl_line : 41 + <163> DW_AT_linkage_name: _ZN2C29testcase2Ev + <176> DW_AT_type : <0x1e1> + <17a> DW_AT_accessibility: 1 (public) + <17b> DW_AT_declaration : 1 + <17b> DW_AT_object_pointer: <0x183> + <17f> DW_AT_sibling : <0x189> + <3><183>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <184> DW_AT_type : <0x1e9> + <188> DW_AT_artificial : 1 + <3><188>: Abbrev Number: 0 + <2><189>: Abbrev Number: 4 (DW_TAG_subprogram) + <18a> DW_AT_external : 1 + <18a> DW_AT_name : (indexed string: 0x2): testcase3 + <18b> DW_AT_decl_file : 2 + <18c> DW_AT_decl_line : 42 + <18d> DW_AT_linkage_name: _ZN2C29testcase3Ev + <1a0> DW_AT_type : <0x1e1> + <1a4> DW_AT_accessibility: 1 (public) + <1a5> DW_AT_declaration : 1 + <1a5> DW_AT_object_pointer: <0x1ad> + <1a9> DW_AT_sibling : <0x1b3> + <3><1ad>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <1ae> DW_AT_type : <0x1e9> + <1b2> DW_AT_artificial : 1 + <3><1b2>: Abbrev Number: 0 + <2><1b3>: Abbrev Number: 10 (DW_TAG_subprogram) + <1b4> DW_AT_external : 1 + <1b4> DW_AT_name : (indexed string: 0x4): testcase4 + <1b5> DW_AT_decl_file : 2 + <1b6> DW_AT_decl_line : 43 + <1b7> DW_AT_linkage_name: _ZN2C29testcase4Ev + <1ca> DW_AT_type : <0x1e1> + <1ce> DW_AT_accessibility: 1 (public) + <1cf> DW_AT_declaration : 1 + <1cf> DW_AT_object_pointer: <0x1d3> + <3><1d3>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <1d4> DW_AT_type : <0x1e9> + <1d8> DW_AT_artificial : 1 + <3><1d8>: Abbrev Number: 0 + <2><1d9>: Abbrev Number: 0 + <1><1da>: Abbrev Number: 7 (DW_TAG_base_type) + <1db> DW_AT_byte_size : 4 + <1dc> DW_AT_encoding : 5 (signed) + <1dd> DW_AT_name : int + <1><1e1>: Abbrev Number: 7 (DW_TAG_base_type) + <1e2> DW_AT_byte_size : 1 + <1e3> DW_AT_encoding : 2 (boolean) + <1e4> DW_AT_name : bool + <1><1e9>: Abbrev Number: 8 (DW_TAG_pointer_type) + <1ea> DW_AT_byte_size : 8 + <1eb> DW_AT_type : <0x120> + <1><1ef>: Abbrev Number: 0 + Compilation Unit @ offset 0x1f0: + Length: 0x141 (32-bit) + Version: 4 + Abbrev Offset: 0x0 + Pointer Size: 8 + Signature: 0xb5faa2a4b7a919c4 + Type Offset: 0x25 + Section contributions: + .debug_abbrev.dwo: 0x0 0x154 + .debug_line.dwo: 0x0 0x40 + .debug_loc.dwo: 0x0 0x0 + .debug_str_offsets.dwo: 0x0 0x14 + <0><207>: Abbrev Number: 1 (DW_TAG_type_unit) + <208> DW_AT_language : 4 (C++) + <209> DW_AT_GNU_odr_signature: 0xc7fbeb753b05ade3 + <211> DW_AT_stmt_list : 0x0 + <1><215>: Abbrev Number: 2 (DW_TAG_class_type) + <216> DW_AT_name : C1 + <219> DW_AT_byte_size : 4 + <21a> DW_AT_decl_file : 2 + <21b> DW_AT_decl_line : 25 + <21c> DW_AT_sibling : <0x31f> + <2><220>: Abbrev Number: 3 (DW_TAG_member) + <221> DW_AT_name : (indexed string: 0x3): member1 + <222> DW_AT_decl_file : 2 + <223> DW_AT_decl_line : 34 + <224> DW_AT_type : <0x31f> + <228> DW_AT_data_member_location: 0 + <229> DW_AT_accessibility: 1 (public) + <2><22a>: Abbrev Number: 4 (DW_TAG_subprogram) + <22b> DW_AT_external : 1 + <22b> DW_AT_name : (indexed string: 0x0): testcase1 + <22c> DW_AT_decl_file : 2 + <22d> DW_AT_decl_line : 28 + <22e> DW_AT_linkage_name: _ZN2C19testcase1Ev + <241> DW_AT_type : <0x326> + <245> DW_AT_accessibility: 1 (public) + <246> DW_AT_declaration : 1 + <246> DW_AT_object_pointer: <0x24e> + <24a> DW_AT_sibling : <0x254> + <3><24e>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <24f> DW_AT_type : <0x32e> + <253> DW_AT_artificial : 1 + <3><253>: Abbrev Number: 0 + <2><254>: Abbrev Number: 11 (DW_TAG_subprogram) + <255> DW_AT_external : 1 + <255> DW_AT_name : t1a + <259> DW_AT_decl_file : 2 + <25a> DW_AT_decl_line : 29 + <25b> DW_AT_linkage_name: _ZN2C13t1aEv + <268> DW_AT_type : <0x326> + <26c> DW_AT_accessibility: 1 (public) + <26d> DW_AT_declaration : 1 + <26d> DW_AT_object_pointer: <0x275> + <271> DW_AT_sibling : <0x27b> + <3><275>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <276> DW_AT_type : <0x32e> + <27a> DW_AT_artificial : 1 + <3><27a>: Abbrev Number: 0 + <2><27b>: Abbrev Number: 11 (DW_TAG_subprogram) + <27c> DW_AT_external : 1 + <27c> DW_AT_name : t1_2 + <281> DW_AT_decl_file : 2 + <282> DW_AT_decl_line : 30 + <283> DW_AT_linkage_name: _ZN2C14t1_2Ev + <291> DW_AT_type : <0x31f> + <295> DW_AT_accessibility: 1 (public) + <296> DW_AT_declaration : 1 + <296> DW_AT_object_pointer: <0x29e> + <29a> DW_AT_sibling : <0x2a4> + <3><29e>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <29f> DW_AT_type : <0x32e> + <2a3> DW_AT_artificial : 1 + <3><2a3>: Abbrev Number: 0 + <2><2a4>: Abbrev Number: 4 (DW_TAG_subprogram) + <2a5> DW_AT_external : 1 + <2a5> DW_AT_name : (indexed string: 0x1): testcase2 + <2a6> DW_AT_decl_file : 2 + <2a7> DW_AT_decl_line : 31 + <2a8> DW_AT_linkage_name: _ZN2C19testcase2Ev + <2bb> DW_AT_type : <0x326> + <2bf> DW_AT_accessibility: 1 (public) + <2c0> DW_AT_declaration : 1 + <2c0> DW_AT_object_pointer: <0x2c8> + <2c4> DW_AT_sibling : <0x2ce> + <3><2c8>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <2c9> DW_AT_type : <0x32e> + <2cd> DW_AT_artificial : 1 + <3><2cd>: Abbrev Number: 0 + <2><2ce>: Abbrev Number: 4 (DW_TAG_subprogram) + <2cf> DW_AT_external : 1 + <2cf> DW_AT_name : (indexed string: 0x2): testcase3 + <2d0> DW_AT_decl_file : 2 + <2d1> DW_AT_decl_line : 32 + <2d2> DW_AT_linkage_name: _ZN2C19testcase3Ev + <2e5> DW_AT_type : <0x326> + <2e9> DW_AT_accessibility: 1 (public) + <2ea> DW_AT_declaration : 1 + <2ea> DW_AT_object_pointer: <0x2f2> + <2ee> DW_AT_sibling : <0x2f8> + <3><2f2>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <2f3> DW_AT_type : <0x32e> + <2f7> DW_AT_artificial : 1 + <3><2f7>: Abbrev Number: 0 + <2><2f8>: Abbrev Number: 10 (DW_TAG_subprogram) + <2f9> DW_AT_external : 1 + <2f9> DW_AT_name : (indexed string: 0x4): testcase4 + <2fa> DW_AT_decl_file : 2 + <2fb> DW_AT_decl_line : 33 + <2fc> DW_AT_linkage_name: _ZN2C19testcase4Ev + <30f> DW_AT_type : <0x326> + <313> DW_AT_accessibility: 1 (public) + <314> DW_AT_declaration : 1 + <314> DW_AT_object_pointer: <0x318> + <3><318>: Abbrev Number: 5 (DW_TAG_formal_parameter) + <319> DW_AT_type : <0x32e> + <31d> DW_AT_artificial : 1 + <3><31d>: Abbrev Number: 0 + <2><31e>: Abbrev Number: 0 + <1><31f>: Abbrev Number: 7 (DW_TAG_base_type) + <320> DW_AT_byte_size : 4 + <321> DW_AT_encoding : 5 (signed) + <322> DW_AT_name : int + <1><326>: Abbrev Number: 7 (DW_TAG_base_type) + <327> DW_AT_byte_size : 1 + <328> DW_AT_encoding : 2 (boolean) + <329> DW_AT_name : bool + <1><32e>: Abbrev Number: 8 (DW_TAG_pointer_type) + <32f> DW_AT_byte_size : 8 + <330> DW_AT_type : <0x215> + <1><334>: Abbrev Number: 0 + diff --git a/binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 b/binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 Binary files differnew file mode 100644 index 0000000..75cce36 --- /dev/null +++ b/binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 diff --git a/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils/testsuite/binutils-all/x86-64/x86-64.exp index 7bd49ab..5f02ed3 100644 --- a/binutils/testsuite/binutils-all/x86-64/x86-64.exp +++ b/binutils/testsuite/binutils-all/x86-64/x86-64.exp @@ -27,3 +27,34 @@ foreach t $test_list { verbose [file rootname $t] run_dump_test [file rootname $t] } + +set t $srcdir/$subdir/pr26808.dwp.bz2 +# We need to strip the ".bz2", but can leave the dirname. +set test $subdir/[file tail $t] +set testname [file rootname $test] +verbose $testname +if {[catch "system \"bzip2 -dc $t > $tempfile\""] != 0} { + untested "bzip2 -dc ($testname)" +} else { + send_log "$READELF -wi $tempfile > tmpdir/pr26808.out 2> /dev/null\n" + verbose "$READELF -wi $tempfile > tmpdir/pr26808.out 2> /dev/null" 1 + set got [catch "system \"$READELF -wi $tempfile > tmpdir/pr26808.out 2> /dev/null\""] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]]} then { + fail $testname + } else { + send_log "cmp tmpdir/pr26808.out $srcdir/$subdir/pr26808.dump\n" + verbose "cmp tmpdir/pr26808.out $srcdir/$subdir/pr26808.dump" 1 + set status [remote_exec build cmp "tmpdir/pr26808.out $srcdir/$subdir/pr26808.dump"] + set exec_output [lindex $status 1] + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "readelf -wi ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "readelf -wi ($testname)" + } + } +} |