NAME=id Dwarf Printing
FILE=bins/elf/dwarf3_many_comp_units.elf
CMDS=<<EOF
id
EOF
EXPECT=<<EOF
   1      DW_TAG_compile_unit       [has children] (0x0)
    DW_AT_producer                 DW_FORM_strp                  
    DW_AT_language                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_comp_dir                 DW_FORM_strp                  
    DW_AT_ranges                   DW_FORM_data4                 
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_entry_pc                 DW_FORM_addr                  
    DW_AT_stmt_list                DW_FORM_data4                 
   2      DW_TAG_structure_type     [has children] (0x15)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_siblings                 DW_FORM_ref4                  
   3      DW_TAG_subprogram         [has children] (0x26)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   4      DW_TAG_formal_parameter   [no children] (0x3e)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
   5      DW_TAG_base_type          [no children] (0x47)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_encoding                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_string                
   6      DW_TAG_const_type         [no children] (0x52)
    DW_AT_type                     DW_FORM_ref4                  
   7      DW_TAG_pointer_type       [no children] (0x59)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
   8      DW_TAG_structure_type     [has children] (0x62)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   9      DW_TAG_member             [no children] (0x75)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_data_member_location     DW_FORM_data1                 
    DW_AT_artificial               DW_FORM_flag                  
   10     DW_TAG_subprogram         [has children] (0x82)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   11     DW_TAG_subprogram         [has children] (0x9a)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   12     DW_TAG_subprogram         [has children] (0xb6)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_vtable_elem_location     DW_FORM_block1                
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   13     DW_TAG_subroutine_type    [has children] (0xd4)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   14     DW_TAG_unspecified_parameters [no children] (0xdd)
   15     DW_TAG_pointer_type       [no children] (0xe2)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
   16     DW_TAG_subprogram         [has children] (0xed)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   17     DW_TAG_variable           [no children] (0x10c)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   18     DW_TAG_subprogram         [has children] (0x11d)
    DW_AT_specification            DW_FORM_ref4                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   19     DW_TAG_formal_parameter   [no children] (0x131)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_location                 DW_FORM_block1                
   20     DW_TAG_subprogram         [has children] (0x13e)
    DW_AT_specification            DW_FORM_ref4                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_inline                   DW_FORM_data1                 
    DW_AT_siblings                 DW_FORM_ref4                  
   21     DW_TAG_formal_parameter   [no children] (0x14b)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
   22     DW_TAG_subprogram         [has children] (0x156)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   23     DW_TAG_formal_parameter   [no children] (0x16d)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   24     DW_TAG_subprogram         [has children] (0x176)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
   1      DW_TAG_compile_unit       [has children] (0x18c)
    DW_AT_producer                 DW_FORM_strp                  
    DW_AT_language                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_comp_dir                 DW_FORM_strp                  
    DW_AT_ranges                   DW_FORM_data4                 
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_entry_pc                 DW_FORM_addr                  
    DW_AT_stmt_list                DW_FORM_data4                 
   2      DW_TAG_structure_type     [has children] (0x1a1)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   3      DW_TAG_subprogram         [has children] (0x1b4)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   4      DW_TAG_formal_parameter   [no children] (0x1c8)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
   5      DW_TAG_formal_parameter   [no children] (0x1d1)
    DW_AT_type                     DW_FORM_ref4                  
   6      DW_TAG_member             [no children] (0x1d8)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_data_member_location     DW_FORM_data1                 
    DW_AT_artificial               DW_FORM_flag                  
   7      DW_TAG_subprogram         [has children] (0x1e5)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   8      DW_TAG_subprogram         [has children] (0x1fd)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   9      DW_TAG_subprogram         [has children] (0x219)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_vtable_elem_location     DW_FORM_block1                
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   10     DW_TAG_const_type         [no children] (0x237)
    DW_AT_type                     DW_FORM_ref4                  
   11     DW_TAG_pointer_type       [no children] (0x23e)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
   12     DW_TAG_reference_type     [no children] (0x247)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
   13     DW_TAG_subroutine_type    [has children] (0x250)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   14     DW_TAG_unspecified_parameters [no children] (0x259)
   15     DW_TAG_base_type          [no children] (0x25e)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_encoding                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_string                
   16     DW_TAG_pointer_type       [no children] (0x269)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
   17     DW_TAG_structure_type     [has children] (0x274)
    DW_AT_name                     DW_FORM_string                
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   18     DW_TAG_inheritance        [no children] (0x287)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_data_member_location     DW_FORM_data1                 
   19     DW_TAG_subprogram         [has children] (0x290)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   20     DW_TAG_subprogram         [has children] (0x2a4)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   21     DW_TAG_subprogram         [has children] (0x2bc)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_vtable_elem_location     DW_FORM_block1                
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   22     DW_TAG_structure_type     [has children] (0x2da)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   23     DW_TAG_subprogram         [has children] (0x2e5)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   24     DW_TAG_subprogram         [has children] (0x2fb)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   25     DW_TAG_variable           [no children] (0x317)
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   26     DW_TAG_variable           [no children] (0x328)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   27     DW_TAG_subprogram         [has children] (0x339)
    DW_AT_specification            DW_FORM_ref4                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   28     DW_TAG_formal_parameter   [no children] (0x34d)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_location                 DW_FORM_block1                
   29     DW_TAG_subprogram         [has children] (0x35a)
    DW_AT_specification            DW_FORM_ref4                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_inline                   DW_FORM_data1                 
    DW_AT_siblings                 DW_FORM_ref4                  
   30     DW_TAG_formal_parameter   [no children] (0x367)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
   31     DW_TAG_subprogram         [has children] (0x372)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   32     DW_TAG_formal_parameter   [no children] (0x389)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   33     DW_TAG_subprogram         [has children] (0x392)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   34     DW_TAG_subprogram         [has children] (0x3a9)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  

  Compilation Unit @ offset 0x0:
   Length:        0x22a
   Version:       3
   Abbrev Offset: 0x0
   Pointer Size:  8

<0xb>: Abbrev Number: 1    (DW_TAG_compile_unit)
     DW_AT_producer            : (indirect string, offset: 0x76): GNU C++14 9.3.0 -mtune=generic -march=x86-64 -gdwarf-3 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
     DW_AT_language            : 4   (C++)
     DW_AT_name                : (indirect string, offset: 0x120): mammal.cpp
     DW_AT_comp_dir            : (indirect string, offset: 0x14b): /home/hound/r2test/dwarf/cpp/dump
     DW_AT_ranges              : 0
     DW_AT_low_pc              : 0x0
     DW_AT_entry_pc            : 0x0
     DW_AT_stmt_list           : 0
<0x31>: Abbrev Number: 2    (DW_TAG_structure_type)
     DW_AT_name                : (indirect string, offset: 0x4a): calculator
     DW_AT_byte_size           : 1
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 6
     DW_AT_decl_column         : 8
     DW_AT_siblings            : <0x5c>
<0x3e>: Abbrev Number: 3    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x172): calculate
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 7
     DW_AT_decl_column         : 6
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x2e): _ZN10calculator9calculateEv
     DW_AT_type                : <0x5c>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x54>
<0x54>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x68>
     DW_AT_artificial          : 1
<0x5a>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x5b>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x5c>: Abbrev Number: 5    (DW_TAG_base_type)
     DW_AT_byte_size           : 4
     DW_AT_encoding            : 5
     DW_AT_name                : int
<0x63>: Abbrev Number: 6    (DW_TAG_const_type)
     DW_AT_type                : <0x5c>
<0x68>: Abbrev Number: 7    (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x31>
<0x6e>: Abbrev Number: 6    (DW_TAG_const_type)
     DW_AT_type                : <0x68>
<0x73>: Abbrev Number: 8    (DW_TAG_structure_type)
     DW_AT_name                : (indirect string, offset: 0x136): Mammal
     DW_AT_byte_size           : 8
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 1
     DW_AT_decl_column         : 8
     DW_AT_containing_type     : <0x73>
     DW_AT_siblings            : <0xfa>
<0x84>: Abbrev Number: 9    (DW_TAG_member)
     DW_AT_name                : (indirect string, offset: 0x130): _vptr.Mammal
     DW_AT_type                : <0x105>
     DW_AT_data_member_location : 0
     DW_AT_artificial          : 1
<0x8f>: Abbrev Number: 10   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x136): Mammal
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 2
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x0): _ZN6MammalC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0xa5>
     DW_AT_siblings            : <0xac>
<0xa5>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x115>
     DW_AT_artificial          : 1
<0xab>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xac>: Abbrev Number: 11   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x186): ~Mammal
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 3
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xf): _ZN6MammalD4Ev
     DW_AT_virtuality          : 1
     DW_AT_containing_type     : <0x73>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0xc7>
     DW_AT_siblings            : <0xd4>
<0xc7>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x115>
     DW_AT_artificial          : 1
<0xcd>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x5c>
     DW_AT_artificial          : 1
<0xd3>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xd4>: Abbrev Number: 12   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x146): walk
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 4
     DW_AT_decl_column         : 7
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x64): _ZN6Mammal4walkEv
     DW_AT_type                : <0x5c>
     DW_AT_virtuality          : 1
     DW_AT_vtable_elem_location : 2 byte block: 0x10 0x02
     DW_AT_containing_type     : <0x73>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0xf2>
<0xf2>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x115>
     DW_AT_artificial          : 1
<0xf8>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xf9>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xfa>: Abbrev Number: 13   (DW_TAG_subroutine_type)
     DW_AT_type                : <0x5c>
     DW_AT_siblings            : <0x105>
<0x103>: Abbrev Number: 14   (DW_TAG_unspecified_parameters)
<0x104>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x105>: Abbrev Number: 7    (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x10b>
<0x10b>: Abbrev Number: 15   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_name                : (indirect string, offset: 0x1e): __vtbl_ptr_type
     DW_AT_type                : <0xfa>
<0x115>: Abbrev Number: 7    (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x73>
<0x11b>: Abbrev Number: 6    (DW_TAG_const_type)
     DW_AT_type                : <0x115>
<0x120>: Abbrev Number: 16   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x16d): pepa
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 10
     DW_AT_decl_column         : 5
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x13d): _Z4pepav
     DW_AT_type                : <0x5c>
     DW_AT_low_pc              : 0x11eb
     DW_AT_high_pc             : 0x1228
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x158>
<0x148>: Abbrev Number: 17   (DW_TAG_variable)
     DW_AT_name                : (indirect string, offset: 0x12b): calc
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 11
     DW_AT_decl_column         : 13
     DW_AT_type                : <0x31>
     DW_AT_location            : 2 byte block: 0x91 0x67
<0x157>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x158>: Abbrev Number: 18   (DW_TAG_subprogram)
     DW_AT_specification       : <0x3e>
     DW_AT_object_pointer      : <0x178>
     DW_AT_low_pc              : 0x1228
     DW_AT_high_pc             : 0x123b
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x186>
<0x178>: Abbrev Number: 19   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x6e>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x185>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x186>: Abbrev Number: 18   (DW_TAG_subprogram)
     DW_AT_specification       : <0xd4>
     DW_AT_object_pointer      : <0x1a6>
     DW_AT_low_pc              : 0x11d8
     DW_AT_high_pc             : 0x11eb
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x1b4>
<0x1a6>: Abbrev Number: 19   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x11b>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x1b3>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x1b4>: Abbrev Number: 20   (DW_TAG_subprogram)
     DW_AT_specification       : <0xac>
     DW_AT_object_pointer      : <0x1c2>
     DW_AT_inline              : 0
     DW_AT_siblings            : <0x1d7>
<0x1c2>: Abbrev Number: 21   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x11b>
     DW_AT_artificial          : 1
<0x1cc>: Abbrev Number: 21   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x17c): __in_chrg
     DW_AT_type                : <0x63>
     DW_AT_artificial          : 1
<0x1d6>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x1d7>: Abbrev Number: 22   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x1b4>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x10c): _ZN6MammalD0Ev
     DW_AT_object_pointer      : <0x1fb>
     DW_AT_low_pc              : 0x11a8
     DW_AT_high_pc             : 0x11d7
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x204>
<0x1fb>: Abbrev Number: 23   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x1c2>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x203>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x204>: Abbrev Number: 24   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x1b4>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x55): _ZN6MammalD2Ev
     DW_AT_object_pointer      : <0x224>
     DW_AT_low_pc              : 0x118a
     DW_AT_high_pc             : 0x11a7
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
<0x224>: Abbrev Number: 23   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x1c2>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x22c>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x22d>: Abbrev Number: 0    (DW_TAG_null_entry)

  Compilation Unit @ offset 0x22e:
   Length:        0x46b
   Version:       3
   Abbrev Offset: 0x18c
   Pointer Size:  8

<0x239>: Abbrev Number: 1    (DW_TAG_compile_unit)
     DW_AT_producer            : (indirect string, offset: 0x76): GNU C++14 9.3.0 -mtune=generic -march=x86-64 -gdwarf-3 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
     DW_AT_language            : 4   (C++)
     DW_AT_name                : (indirect string, offset: 0x1cc): main.cpp
     DW_AT_comp_dir            : (indirect string, offset: 0x14b): /home/hound/r2test/dwarf/cpp/dump
     DW_AT_ranges              : 48
     DW_AT_low_pc              : 0x0
     DW_AT_entry_pc            : 0x0
     DW_AT_stmt_list           : 129
<0x25f>: Abbrev Number: 2    (DW_TAG_structure_type)
     DW_AT_name                : (indirect string, offset: 0x240): Bird
     DW_AT_byte_size           : 8
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 9
     DW_AT_decl_column         : 8
     DW_AT_containing_type     : <0x25f>
     DW_AT_siblings            : <0x306>
<0x270>: Abbrev Number: 3    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x240): Bird
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1bc): _ZN4BirdC4ERKS_
     DW_AT_artificial          : 1
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x284>
     DW_AT_siblings            : <0x290>
<0x284>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x30b>
     DW_AT_artificial          : 1
<0x28a>: Abbrev Number: 5    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x316>
<0x28f>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x290>: Abbrev Number: 6    (DW_TAG_member)
     DW_AT_name                : (indirect string, offset: 0x23a): _vptr.Bird
     DW_AT_type                : <0x333>
     DW_AT_data_member_location : 0
     DW_AT_artificial          : 1
<0x29b>: Abbrev Number: 7    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x240): Bird
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 10
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x275): _ZN4BirdC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x2b1>
     DW_AT_siblings            : <0x2b8>
<0x2b1>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x30b>
     DW_AT_artificial          : 1
<0x2b7>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x2b8>: Abbrev Number: 8    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x26f): ~Bird
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 11
     DW_AT_decl_column         : 11
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x202): _ZN4BirdD4Ev
     DW_AT_virtuality          : 1
     DW_AT_containing_type     : <0x25f>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x2d3>
     DW_AT_siblings            : <0x2e0>
<0x2d3>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x30b>
     DW_AT_artificial          : 1
<0x2d9>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x327>
     DW_AT_artificial          : 1
<0x2df>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x2e0>: Abbrev Number: 9    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : fly
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 12
     DW_AT_decl_column         : 15
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x245): _ZN4Bird3flyEv
     DW_AT_type                : <0x327>
     DW_AT_virtuality          : 1
     DW_AT_vtable_elem_location : 2 byte block: 0x10 0x02
     DW_AT_containing_type     : <0x25f>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x2fe>
<0x2fe>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x30b>
     DW_AT_artificial          : 1
<0x304>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x305>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x306>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x25f>
<0x30b>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x25f>
<0x311>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x30b>
<0x316>: Abbrev Number: 12   (DW_TAG_reference_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x306>
<0x31c>: Abbrev Number: 13   (DW_TAG_subroutine_type)
     DW_AT_type                : <0x327>
     DW_AT_siblings            : <0x327>
<0x325>: Abbrev Number: 14   (DW_TAG_unspecified_parameters)
<0x326>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x327>: Abbrev Number: 15   (DW_TAG_base_type)
     DW_AT_byte_size           : 4
     DW_AT_encoding            : 5
     DW_AT_name                : int
<0x32e>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x327>
<0x333>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x339>
<0x339>: Abbrev Number: 16   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_name                : (indirect string, offset: 0x1e): __vtbl_ptr_type
     DW_AT_type                : <0x31c>
<0x343>: Abbrev Number: 17   (DW_TAG_structure_type)
     DW_AT_name                : Dog
     DW_AT_byte_size           : 8
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 3
     DW_AT_decl_column         : 8
     DW_AT_containing_type     : <0x3ea>
     DW_AT_siblings            : <0x3e5>
<0x354>: Abbrev Number: 18   (DW_TAG_inheritance)
     DW_AT_type                : <0x3ea>
     DW_AT_data_member_location : 0
<0x35a>: Abbrev Number: 19   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : Dog
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x260): _ZN3DogC4ERKS_
     DW_AT_artificial          : 1
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x36e>
     DW_AT_siblings            : <0x37a>
<0x36e>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x40e>
     DW_AT_artificial          : 1
<0x374>: Abbrev Number: 5    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x419>
<0x379>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x37a>: Abbrev Number: 20   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : Dog
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 4
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1f6): _ZN3DogC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x390>
     DW_AT_siblings            : <0x397>
<0x390>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x40e>
     DW_AT_artificial          : 1
<0x396>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x397>: Abbrev Number: 8    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x19a): ~Dog
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 5
     DW_AT_decl_column         : 11
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x18e): _ZN3DogD4Ev
     DW_AT_virtuality          : 1
     DW_AT_containing_type     : <0x343>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x3b2>
     DW_AT_siblings            : <0x3bf>
<0x3b2>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x40e>
     DW_AT_artificial          : 1
<0x3b8>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x327>
     DW_AT_artificial          : 1
<0x3be>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x3bf>: Abbrev Number: 21   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x146): walk
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 6
     DW_AT_decl_column         : 15
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x20f): _ZN3Dog4walkEv
     DW_AT_type                : <0x327>
     DW_AT_virtuality          : 1
     DW_AT_vtable_elem_location : 2 byte block: 0x10 0x02
     DW_AT_containing_type     : <0x343>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x3dd>
<0x3dd>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x40e>
     DW_AT_artificial          : 1
<0x3e3>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x3e4>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x3e5>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x343>
<0x3ea>: Abbrev Number: 22   (DW_TAG_structure_type)
     DW_AT_name                : (indirect string, offset: 0x136): Mammal
     DW_AT_declaration         : 1
     DW_AT_siblings            : <0x40e>
<0x3f4>: Abbrev Number: 23   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x136): Mammal
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 2
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x0): _ZN6MammalC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x406>
<0x406>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x46d>
     DW_AT_artificial          : 1
<0x40c>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x40d>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x40e>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x343>
<0x414>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x40e>
<0x419>: Abbrev Number: 12   (DW_TAG_reference_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x3e5>
<0x41f>: Abbrev Number: 24   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x19f): main
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 15
     DW_AT_decl_column         : 5
     DW_AT_type                : <0x327>
     DW_AT_low_pc              : 0x123b
     DW_AT_high_pc             : 0x12c6
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x46d>
<0x443>: Abbrev Number: 25   (DW_TAG_variable)
     DW_AT_name                : b
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 16
     DW_AT_decl_column         : 9
     DW_AT_type                : <0x30b>
     DW_AT_location            : 2 byte block: 0x91 0x50
<0x450>: Abbrev Number: 25   (DW_TAG_variable)
     DW_AT_name                : m
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 17
     DW_AT_decl_column         : 11
     DW_AT_type                : <0x46d>
     DW_AT_location            : 2 byte block: 0x91 0x58
<0x45d>: Abbrev Number: 26   (DW_TAG_variable)
     DW_AT_name                : (indirect string, offset: 0x1e2): output
     DW_AT_decl_file           : 2
     DW_AT_decl_line           : 20
     DW_AT_decl_column         : 7
     DW_AT_type                : <0x327>
     DW_AT_location            : 2 byte block: 0x91 0x4c
<0x46c>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x46d>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x3ea>
<0x473>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x46d>
<0x478>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x2e0>
     DW_AT_object_pointer      : <0x498>
     DW_AT_low_pc              : 0x13f0
     DW_AT_high_pc             : 0x1403
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x4a6>
<0x498>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x311>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x4a5>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x4a6>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_specification       : <0x2b8>
     DW_AT_object_pointer      : <0x4b4>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x4c9>
<0x4b4>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x311>
     DW_AT_artificial          : 1
<0x4be>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x17c): __in_chrg
     DW_AT_type                : <0x32e>
     DW_AT_artificial          : 1
<0x4c8>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x4c9>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x4a6>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x21e): _ZN4BirdD0Ev
     DW_AT_object_pointer      : <0x4ed>
     DW_AT_low_pc              : 0x13c0
     DW_AT_high_pc             : 0x13ef
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x4f6>
<0x4ed>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x4b4>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x4f5>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x4f6>: Abbrev Number: 33   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x4a6>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1d5): _ZN4BirdD2Ev
     DW_AT_object_pointer      : <0x51a>
     DW_AT_low_pc              : 0x13a2
     DW_AT_high_pc             : 0x13bf
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x523>
<0x51a>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x4b4>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x522>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x523>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_specification       : <0x29b>
     DW_AT_object_pointer      : <0x531>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x53c>
<0x531>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x311>
     DW_AT_artificial          : 1
<0x53b>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x53c>: Abbrev Number: 33   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x523>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1e9): _ZN4BirdC2Ev
     DW_AT_object_pointer      : <0x560>
     DW_AT_low_pc              : 0x1384
     DW_AT_high_pc             : 0x13a1
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x569>
<0x560>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x531>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x568>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x569>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x3bf>
     DW_AT_object_pointer      : <0x589>
     DW_AT_low_pc              : 0x1370
     DW_AT_high_pc             : 0x1383
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x597>
<0x589>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x414>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x596>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x597>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_specification       : <0x397>
     DW_AT_object_pointer      : <0x5a5>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x5ba>
<0x5a5>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x414>
     DW_AT_artificial          : 1
<0x5af>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x17c): __in_chrg
     DW_AT_type                : <0x32e>
     DW_AT_artificial          : 1
<0x5b9>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x5ba>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x597>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1a4): _ZN3DogD0Ev
     DW_AT_object_pointer      : <0x5de>
     DW_AT_low_pc              : 0x1340
     DW_AT_high_pc             : 0x136f
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x5e7>
<0x5de>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x5a5>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x5e6>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x5e7>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x597>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x254): _ZN3DogD2Ev
     DW_AT_object_pointer      : <0x60b>
     DW_AT_low_pc              : 0x1312
     DW_AT_high_pc             : 0x133f
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x614>
<0x60b>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x5a5>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x613>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x614>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_specification       : <0x37a>
     DW_AT_object_pointer      : <0x622>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x62d>
<0x622>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x414>
     DW_AT_artificial          : 1
<0x62c>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x62d>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x614>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1b0): _ZN3DogC2Ev
     DW_AT_object_pointer      : <0x651>
     DW_AT_low_pc              : 0x12e4
     DW_AT_high_pc             : 0x1311
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x65a>
<0x651>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x622>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x659>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x65a>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_specification       : <0x3f4>
     DW_AT_object_pointer      : <0x668>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x673>
<0x668>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x11b): this
     DW_AT_type                : <0x473>
     DW_AT_artificial          : 1
<0x672>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x673>: Abbrev Number: 34   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x65a>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x22b): _ZN6MammalC2Ev
     DW_AT_object_pointer      : <0x693>
     DW_AT_low_pc              : 0x12c6
     DW_AT_high_pc             : 0x12e3
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
<0x693>: Abbrev Number: 32   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x668>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x69b>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x69c>: Abbrev Number: 0    (DW_TAG_null_entry)

Contents of the .debug_aranges section:
  Address Range Set
   Unit Length:           0x3c
   64bit:                 false
   Version:               2
   Offset in .debug_info: 0x0
   Address Size:          8
   Segment Size:          0
   Ranges:
    address            length
    0x000000000000118a 0x000000000000009e
    0x0000000000001228 0x0000000000000013
    0x0000000000000000 0x0000000000000000
  Address Range Set
   Unit Length:           0xbc
   64bit:                 false
   Version:               2
   Offset in .debug_info: 0x22e
   Address Size:          8
   Segment Size:          0
   Ranges:
    address            length
    0x000000000000123b 0x000000000000008b
    0x00000000000012c6 0x000000000000001d
    0x00000000000012e4 0x000000000000002d
    0x0000000000001312 0x000000000000002d
    0x0000000000001340 0x000000000000002f
    0x0000000000001370 0x0000000000000013
    0x0000000000001384 0x000000000000001d
    0x00000000000013a2 0x000000000000001d
    0x00000000000013c0 0x000000000000002f
    0x00000000000013f0 0x0000000000000013
    0x0000000000000000 0x0000000000000000

Raw dump of debug contents of section .debug_line:

 Header information:
  Length:                             125
  DWARF Version:                      3
  Header Length:                      45
  Minimum Instruction Length:         1
  Maximum Operations per Instruction: 0
  Initial value of 'is_stmt':         1
  Line Base:                          -5
  Line Range:                         14
  Opcode Base:                        13

 Opcodes:
  Opcode 1 has 0 arg
  Opcode 2 has 1 arg
  Opcode 3 has 1 arg
  Opcode 4 has 1 arg
  Opcode 5 has 1 arg
  Opcode 6 has 0 arg
  Opcode 7 has 0 arg
  Opcode 8 has 0 arg
  Opcode 9 has 1 arg
  Opcode 10 has 0 arg
  Opcode 11 has 0 arg
  Opcode 12 has 1 arg


 The File Name Table:
  Entry Dir     Time      Size       Name
  1     0       0         0          mammal.cpp
  2     0       0         0          mammal.h

 Line Number Statements:
  Set column to 3
  Extended opcode 2: set Address to 0x118a
  Special opcode 7: advance Address by 0 to 0x118a and Line by 2 to 3
  Set column to 19
  Special opcode 173: advance Address by 12 to 0x1196 and Line by 0 to 3
  Set column to 22
  Special opcode 201: advance Address by 14 to 0x11a4 and Line by 0 to 3
  Set column to 3
  Special opcode 61: advance Address by 4 to 0x11a8 and Line by 0 to 3
  Set column to 22
  Special opcode 229: advance Address by 16 to 0x11b8 and Line by 0 to 3
  Advance PC by constant 17 to 0x11c9
  Special opcode 216: advance Address by 15 to 0x11d8 and Line by 1 to 4
  Set column to 31
  Special opcode 173: advance Address by 12 to 0x11e4 and Line by 0 to 4
  Set column to 34
  Special opcode 75: advance Address by 5 to 0x11e9 and Line by 0 to 4
  Set column to 12
  Special opcode 39: advance Address by 2 to 0x11eb and Line by 6 to 10
  Special opcode 173: advance Address by 12 to 0x11f7 and Line by 0 to 10
  Set column to 23
  Special opcode 217: advance Address by 15 to 0x1206 and Line by 2 to 12
  Set column to 1
  Special opcode 174: advance Address by 12 to 0x1212 and Line by 1 to 13
  Advance PC by 22 to 0x1228
  Extended opcode 1: End of Sequence

  Set column to 6
  Extended opcode 2: set Address to 0x1228
  Special opcode 11: advance Address by 0 to 0x1228 and Line by 6 to 7
  Set column to 26
  Special opcode 173: advance Address by 12 to 0x1234 and Line by 0 to 7
  Set column to 28
  Special opcode 75: advance Address by 5 to 0x1239 and Line by 0 to 7
  Advance PC by 2 to 0x123b
  Extended opcode 1: End of Sequence

 Header information:
  Length:                             361
  DWARF Version:                      3
  Header Length:                      43
  Minimum Instruction Length:         1
  Maximum Operations per Instruction: 0
  Initial value of 'is_stmt':         1
  Line Base:                          -5
  Line Range:                         14
  Opcode Base:                        13

 Opcodes:
  Opcode 1 has 0 arg
  Opcode 2 has 1 arg
  Opcode 3 has 1 arg
  Opcode 4 has 1 arg
  Opcode 5 has 1 arg
  Opcode 6 has 0 arg
  Opcode 7 has 0 arg
  Opcode 8 has 0 arg
  Opcode 9 has 1 arg
  Opcode 10 has 0 arg
  Opcode 11 has 0 arg
  Opcode 12 has 1 arg


 The File Name Table:
  Entry Dir     Time      Size       Name
  1     0       0         0          mammal.h
  2     0       0         0          main.cpp

 Line Number Statements:
  Set column to 3
  Extended opcode 2: set Address to 0x12c6
  Special opcode 6: advance Address by 0 to 0x12c6 and Line by 1 to 2
  Set column to 12
  Special opcode 173: advance Address by 12 to 0x12d2 and Line by 0 to 2
  Set column to 15
  Special opcode 201: advance Address by 14 to 0x12e0 and Line by 0 to 2
  Advance PC by 3 to 0x12e3
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 3
  Extended opcode 2: set Address to 0x12e4
  Special opcode 8: advance Address by 0 to 0x12e4 and Line by 3 to 4
  Set column to 9
  Special opcode 229: advance Address by 16 to 0x12f4 and Line by 0 to 4
  Set column to 12
  Advance PC by constant 17 to 0x1305
  Special opcode 131: advance Address by 9 to 0x130e and Line by 0 to 4
  Advance PC by 3 to 0x1311
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 11
  Extended opcode 2: set Address to 0x1312
  Special opcode 9: advance Address by 0 to 0x1312 and Line by 4 to 5
  Set column to 18
  Special opcode 229: advance Address by 16 to 0x1322 and Line by 0 to 5
  Set column to 19
  Advance PC by constant 17 to 0x1333
  Special opcode 131: advance Address by 9 to 0x133c and Line by 0 to 5
  Advance PC by 3 to 0x133f
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 11
  Extended opcode 2: set Address to 0x1340
  Special opcode 9: advance Address by 0 to 0x1340 and Line by 4 to 5
  Set column to 19
  Special opcode 229: advance Address by 16 to 0x1350 and Line by 0 to 5
  Advance PC by 31 to 0x136f
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 15
  Extended opcode 2: set Address to 0x1370
  Special opcode 10: advance Address by 0 to 0x1370 and Line by 5 to 6
  Set column to 31
  Special opcode 173: advance Address by 12 to 0x137c and Line by 0 to 6
  Set column to 34
  Special opcode 75: advance Address by 5 to 0x1381 and Line by 0 to 6
  Advance PC by 2 to 0x1383
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 3
  Extended opcode 2: set Address to 0x1384
  Advance line by 9, to 10
  Copy
  Set column to 10
  Special opcode 173: advance Address by 12 to 0x1390 and Line by 0 to 10
  Set column to 13
  Special opcode 201: advance Address by 14 to 0x139e and Line by 0 to 10
  Advance PC by 3 to 0x13a1
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 11
  Extended opcode 2: set Address to 0x13a2
  Advance line by 10, to 11
  Copy
  Set column to 19
  Special opcode 173: advance Address by 12 to 0x13ae and Line by 0 to 11
  Set column to 20
  Special opcode 201: advance Address by 14 to 0x13bc and Line by 0 to 11
  Advance PC by 3 to 0x13bf
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 11
  Extended opcode 2: set Address to 0x13c0
  Advance line by 10, to 11
  Copy
  Set column to 20
  Special opcode 229: advance Address by 16 to 0x13d0 and Line by 0 to 11
  Advance PC by 31 to 0x13ef
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 15
  Extended opcode 2: set Address to 0x13f0
  Advance line by 11, to 12
  Copy
  Set column to 30
  Special opcode 173: advance Address by 12 to 0x13fc and Line by 0 to 12
  Set column to 33
  Special opcode 75: advance Address by 5 to 0x1401 and Line by 0 to 12
  Advance PC by 2 to 0x1403
  Extended opcode 1: End of Sequence

  Set file to 2
  Set column to 12
  Extended opcode 2: set Address to 0x123b
  Advance line by 14, to 15
  Copy
  Set column to 16
  Special opcode 190: advance Address by 13 to 0x1248 and Line by 3 to 18
  Set column to 5
  Advance PC by constant 17 to 0x1259
  Special opcode 61: advance Address by 4 to 0x125d and Line by 0 to 18
  Set column to 15
  Special opcode 62: advance Address by 4 to 0x1261 and Line by 1 to 19
  Set column to 5
  Advance PC by constant 17 to 0x1272
  Special opcode 61: advance Address by 4 to 0x1276 and Line by 0 to 19
  Set column to 7
  Special opcode 62: advance Address by 4 to 0x127a and Line by 1 to 20
  Set column to 20
  Special opcode 104: advance Address by 7 to 0x1281 and Line by 1 to 21
  Set column to 19
  Special opcode 201: advance Address by 14 to 0x128f and Line by 0 to 21
  Set column to 10
  Special opcode 131: advance Address by 9 to 0x1298 and Line by 0 to 21
  Set column to 21
  Special opcode 48: advance Address by 3 to 0x129b and Line by 1 to 22
  Set column to 20
  Special opcode 201: advance Address by 14 to 0x12a9 and Line by 0 to 22
  Set column to 10
  Special opcode 131: advance Address by 9 to 0x12b2 and Line by 0 to 22
  Set column to 23
  Special opcode 48: advance Address by 3 to 0x12b5 and Line by 1 to 23
  Set column to 24
  Special opcode 75: advance Address by 5 to 0x12ba and Line by 0 to 23
  Set column to 1
  Special opcode 76: advance Address by 5 to 0x12bf and Line by 1 to 24
  Advance PC by 7 to 0x12c6
  Extended opcode 1: End of Sequence

0x0000118a	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	3
0x00001196	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	3
0x000011a4	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	3
0x000011a8	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	3
0x000011b8	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	3
0x000011d8	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	4
0x000011e4	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	4
0x000011e9	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	4
0x000011eb	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	10
0x000011f7	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	10
0x00001206	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	12
0x00001212	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	13
0x00001228	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	7
0x00001234	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	7
0x00001239	/home/hound/r2test/dwarf/cpp/dump/mammal.cpp	7
0x0000123b	/home/hound/r2test/dwarf/cpp/dump/main.cpp	15
0x00001248	/home/hound/r2test/dwarf/cpp/dump/main.cpp	18
0x0000125d	/home/hound/r2test/dwarf/cpp/dump/main.cpp	18
0x00001261	/home/hound/r2test/dwarf/cpp/dump/main.cpp	19
0x00001276	/home/hound/r2test/dwarf/cpp/dump/main.cpp	19
0x0000127a	/home/hound/r2test/dwarf/cpp/dump/main.cpp	20
0x00001281	/home/hound/r2test/dwarf/cpp/dump/main.cpp	21
0x0000128f	/home/hound/r2test/dwarf/cpp/dump/main.cpp	21
0x00001298	/home/hound/r2test/dwarf/cpp/dump/main.cpp	21
0x0000129b	/home/hound/r2test/dwarf/cpp/dump/main.cpp	22
0x000012a9	/home/hound/r2test/dwarf/cpp/dump/main.cpp	22
0x000012b2	/home/hound/r2test/dwarf/cpp/dump/main.cpp	22
0x000012b5	/home/hound/r2test/dwarf/cpp/dump/main.cpp	23
0x000012ba	/home/hound/r2test/dwarf/cpp/dump/main.cpp	23
0x000012bf	/home/hound/r2test/dwarf/cpp/dump/main.cpp	24
0x000012c6	/home/hound/r2test/dwarf/cpp/dump/mammal.h	2
0x000012d2	/home/hound/r2test/dwarf/cpp/dump/mammal.h	2
0x000012e0	/home/hound/r2test/dwarf/cpp/dump/mammal.h	2
0x000012e3	-	-
0x000012e4	/home/hound/r2test/dwarf/cpp/dump/main.cpp	4
0x000012f4	/home/hound/r2test/dwarf/cpp/dump/main.cpp	4
0x0000130e	/home/hound/r2test/dwarf/cpp/dump/main.cpp	4
0x00001311	-	-
0x00001312	/home/hound/r2test/dwarf/cpp/dump/main.cpp	5
0x00001322	/home/hound/r2test/dwarf/cpp/dump/main.cpp	5
0x0000133c	/home/hound/r2test/dwarf/cpp/dump/main.cpp	5
0x0000133f	-	-
0x00001340	/home/hound/r2test/dwarf/cpp/dump/main.cpp	5
0x00001350	/home/hound/r2test/dwarf/cpp/dump/main.cpp	5
0x0000136f	-	-
0x00001370	/home/hound/r2test/dwarf/cpp/dump/main.cpp	6
0x0000137c	/home/hound/r2test/dwarf/cpp/dump/main.cpp	6
0x00001381	/home/hound/r2test/dwarf/cpp/dump/main.cpp	6
0x00001383	-	-
0x00001384	/home/hound/r2test/dwarf/cpp/dump/main.cpp	10
0x00001390	/home/hound/r2test/dwarf/cpp/dump/main.cpp	10
0x0000139e	/home/hound/r2test/dwarf/cpp/dump/main.cpp	10
0x000013a1	-	-
0x000013a2	/home/hound/r2test/dwarf/cpp/dump/main.cpp	11
0x000013ae	/home/hound/r2test/dwarf/cpp/dump/main.cpp	11
0x000013bc	/home/hound/r2test/dwarf/cpp/dump/main.cpp	11
0x000013bf	-	-
0x000013c0	/home/hound/r2test/dwarf/cpp/dump/main.cpp	11
0x000013d0	/home/hound/r2test/dwarf/cpp/dump/main.cpp	11
0x000013ef	-	-
0x000013f0	/home/hound/r2test/dwarf/cpp/dump/main.cpp	12
0x000013fc	/home/hound/r2test/dwarf/cpp/dump/main.cpp	12
0x00001401	/home/hound/r2test/dwarf/cpp/dump/main.cpp	12
0x00001403	-	-
EOF
RUN

NAME="pdf dwarf invalid main for analysis not found (aa)"
FILE=bins/src/dwarftest
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=true
e analysis.nopskip=true # if set to true it breaks the test
aa
pd 1 @main
EOF
EXPECT=<<EOF
            ; DATA XREF from entry0 @ 0x40045d
/ int main (int argc, char **argv, char **envp);
|           ; var int64_t var_4h @ rbp-0x4
|           0x0040052d      55             push  rbp                   ; dwarftest.c:4
EOF
RUN

NAME="Mach-O dSYM lines (armv7)"
FILE=bins/mach0/TestRTTI-armv7-dSYM
CMDS=ix.@0x0000a24e
EXPECT=<<EOF
0x0000a24e	/Users/ftamagni/src/TestRTTI/TestRTTI//TestRTTI.cpp	18
EOF
RUN

NAME="function info integration c++"
FILE=bins/elf/dwarf3_many_comp_units.elf 
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=false
aaa
pd 13 @ main
EOF
EXPECT=<<EOF
            ; DATA XREF from entry0 @ 0x10c1
            ;-- main:
/ int dbg.main (int argc, char **argv, char **envp);
|           ; var int output @ rbp-0x24
|           ; var Bird *b @ rbp-0x20
|           ; var Mammal *m @ rbp-0x18
|           0x0000123b      f30f1efa       endbr64                     ; int main();
|           0x0000123f      55             push  rbp
|           0x00001240      4889e5         mov   rbp, rsp
|           0x00001243      53             push  rbx
|           0x00001244      4883ec28       sub   rsp, 0x28
|           0x00001248      bf08000000     mov   edi, 8
|           0x0000124d      e81efeffff     call  sym.imp.operator_new_unsigned_long
|           0x00001252      4889c3         mov   rbx, rax
|           0x00001255      4889df         mov   rdi, rbx
|           0x00001258      e827010000     call  method Bird::Bird()   ; dbg.Bird::Bird()
|           0x0000125d      48895de0       mov   qword [b], rbx
|           0x00001261      bf08000000     mov   edi, 8
|           0x00001266      e805feffff     call  sym.imp.operator_new_unsigned_long
EOF
RUN


NAME="function info integration 1 rust"
FILE=bins/elf/dwarf_rust_bubble 
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=false
aaa
pd 75 @ dbg.main
EOF
EXPECT=<<EOF
            ; DATA XREF from main @ 0x5b0d
            ;-- rust::main::h523dcf5432fcfd88:
/ int dbg.main (int argc, char **argv);
|           ; var int64_t var_8h @ rsp+0x8
|           ; var int64_t var_10h @ rsp+0x10
|           ; var int64_t var_18h @ rsp+0x18
|           ; var int64_t var_20h @ rsp+0x20
|           ; var int64_t var_28h @ rsp+0x28
|           ; var int64_t var_30h @ rsp+0x30
|           ; var int64_t var_38h @ rsp+0x38
|           ; var int64_t var_40h @ rsp+0x40
|           ; var int64_t var_48h @ rsp+0x48
|           ; var int64_t var_50h @ rsp+0x50
|           ; var int64_t var_58h @ rsp+0x58
|           ; var int64_t var_60h @ rsp+0x60
|           ; var int64_t var_68h @ rsp+0x68
|           ; var int64_t var_70h @ rsp+0x70
|           ; var int64_t var_78h @ rsp+0x78
|           ; var i32[11] numbers @ rsp+0x80
|           ; var int64_t var_84h @ rsp+0x84
|           ; var int64_t var_88h @ rsp+0x88
|           ; var int64_t var_8ch @ rsp+0x8c
|           ; var int64_t var_90h @ rsp+0x90
|           ; var int64_t var_94h @ rsp+0x94
|           ; var int64_t var_98h @ rsp+0x98
|           ; var int64_t var_9ch @ rsp+0x9c
|           ; var int64_t var_a0h @ rsp+0xa0
|           ; var int64_t var_a4h @ rsp+0xa4
|           ; var int64_t var_a8h @ rsp+0xa8
|           ; var int64_t var_d8h @ rsp+0xd8
|           ; var int64_t var_e0h @ rsp+0xe0
|           ; var int64_t var_e8h @ rsp+0xe8
|           ; var int64_t var_f0h @ rsp+0xf0
|           ; var int64_t var_120h @ rsp+0x120
|           ; var int64_t var_128h @ rsp+0x128
|           ; var int64_t var_130h @ rsp+0x130
|           ; var &str[6] strings @ rsp+0x138
|           ; var int64_t var_140h @ rsp+0x140
|           ; var int64_t var_148h @ rsp+0x148
|           ; var int64_t var_150h @ rsp+0x150
|           ; var int64_t var_158h @ rsp+0x158
|           ; var int64_t var_160h @ rsp+0x160
|           ; var int64_t var_168h @ rsp+0x168
|           ; var int64_t var_170h @ rsp+0x170
|           ; var int64_t var_178h @ rsp+0x178
|           ; var int64_t var_180h @ rsp+0x180
|           ; var int64_t var_188h @ rsp+0x188
|           ; var int64_t var_1b8h @ rsp+0x1b8
|           ; var int64_t var_1c0h @ rsp+0x1c0
|           ; var int64_t var_1c8h @ rsp+0x1c8
|           ; var int64_t var_1d0h @ rsp+0x1d0
|           ; var int64_t var_200h @ rsp+0x200
|           ; var int64_t var_208h @ rsp+0x208
|           ; var int64_t var_210h @ rsp+0x210
|           ; var int64_t var_218h @ rsp+0x218
|           ; var int64_t var_220h @ rsp+0x220
|           ; var int64_t var_228h @ rsp+0x228
|           ; var &str[6] *arg0 @ rsp+0x230
|           0x00005750      4881ec380200.  sub   rsp, 0x238            ; void main();
|           0x00005757      c78424800000.  mov   dword [numbers], 8
|           0x00005762      c78424840000.  mov   dword [var_84h], 7
|           0x0000576d      c78424880000.  mov   dword [var_88h], 1
|           0x00005778      c784248c0000.  mov   dword [var_8ch], 2
|           0x00005783      c78424900000.  mov   dword [var_90h], 9
|           0x0000578e      c78424940000.  mov   dword [var_94h], 3
|           0x00005799      c78424980000.  mov   dword [var_98h], 4
|           0x000057a4      c784249c0000.  mov   dword [var_9ch], 5
|           0x000057af      c78424a00000.  mov   dword [var_a0h], 0
|           0x000057ba      c78424a40000.  mov   dword [var_a4h], 6
|           0x000057c5      488b05842b03.  mov   rax, qword [0x00038350] ; [0x38350:8]=0x38330
|           0x000057cc      488d8c248000.  lea   rcx, [numbers]
|           0x000057d4      48898c24e800.  mov   qword [var_e8h], rcx
|           0x000057dc      488b8c24e800.  mov   rcx, qword [var_e8h]
|           0x000057e4      48898c241802.  mov   qword [var_218h], rcx
|           0x000057ec      4889cf         mov   rdi, rcx              ; int64_t arg1
|           0x000057ef      488d35da0f00.  lea   rsi, [sym.core::array::__impl_core::fmt::Debug_for__T_____::fmt::h894a83bd2e78b654] ; 0x67d0 ; "H\x83\xecHH\x89|$8H\x89t$@\xb8\n" ; int64_t arg2
|           0x000057f6      4889442478     mov   qword [var_78h], rax
|           0x000057fb      e8501b0000     call  sym core::fmt::ArgumentV1::new::h4b3dd9450748c5fc ; dbg.new<[i32; 10]>
|           0x00005800      4889442470     mov   qword [var_70h], rax
|           0x00005805      4889542468     mov   qword [var_68h], rdx
|           0x0000580a      488b442470     mov   rax, qword [var_70h]
|           0x0000580f      48898424d800.  mov   qword [var_d8h], rax
|           0x00005817      488b4c2468     mov   rcx, qword [var_68h]
|           0x0000581c      48898c24e000.  mov   qword [var_e0h], rcx
|           0x00005824      488d9424d800.  lea   rdx, [var_d8h]
|           0x0000582c      488dbc24a800.  lea   rdi, [var_a8h]        ; int64_t arg1
|           0x00005834      488b742478     mov   rsi, qword [var_78h]  ; int64_t arg2
|           0x00005839      41b802000000   mov   r8d, 2
|           0x0000583f      4889542460     mov   qword [var_60h], rdx
|           0x00005844      4c89c2         mov   rdx, r8               ; int64_t arg3
|           0x00005847      488b4c2460     mov   rcx, qword [var_60h]  ; int64_t arg4
|           0x0000584c      41b801000000   mov   r8d, 1                ; int64_t arg5
|           0x00005852      e8591b0000     call  sym core::fmt::Arguments::new_v1::h2673b5bf555c0288 ; dbg.new_v1
|           0x00005857      488dbc24a800.  lea   rdi, [var_a8h]
|           0x0000585f      ff15b3430300   call  qword [dbg._print]    ; [0x39c18:8]=0xa2d0 dbg._print
|           0x00005865      488d84248000.  lea   rax, [numbers]
|           0x0000586d      4889c7         mov   rdi, rax
|           0x00005870      be0a000000     mov   esi, 0xa
|           0x00005875      e8f6f9ffff     call  sym rust::bubble_sort::h0777bc845caabc60 ; dbg.bubble_sort<i32>
|           0x0000587a      488b05f72a03.  mov   rax, qword [0x00038378] ; [0x38378:8]=0x38358
|           0x00005881      488d8c248000.  lea   rcx, [numbers]
|           0x00005889      48898c243001.  mov   qword [var_130h], rcx
|           0x00005891      488b8c243001.  mov   rcx, qword [var_130h]
|           0x00005899      48898c242002.  mov   qword [var_220h], rcx
|           0x000058a1      4889cf         mov   rdi, rcx              ; int64_t arg1
|           0x000058a4      488d35250f00.  lea   rsi, [sym.core::array::__impl_core::fmt::Debug_for__T_____::fmt::h894a83bd2e78b654] ; 0x67d0 ; "H\x83\xecHH\x89|$8H\x89t$@\xb8\n" ; int64_t arg2
|           0x000058ab      4889442458     mov   qword [var_58h], rax
|           0x000058b0      e89b1a0000     call  sym core::fmt::ArgumentV1::new::h4b3dd9450748c5fc ; dbg.new<[i32; 10]>
|           0x000058b5      4889442450     mov   qword [var_50h], rax
|           0x000058ba      4889542448     mov   qword [var_48h], rdx
|           0x000058bf      488b442450     mov   rax, qword [var_50h]
|           0x000058c4      488984242001.  mov   qword [var_120h], rax
|           0x000058cc      488b4c2448     mov   rcx, qword [var_48h]
|           0x000058d1      48898c242801.  mov   qword [var_128h], rcx
|           0x000058d9      488d94242001.  lea   rdx, [var_120h]
|           0x000058e1      488dbc24f000.  lea   rdi, [var_f0h]        ; int64_t arg1
|           0x000058e9      488b742458     mov   rsi, qword [var_58h]  ; int64_t arg2
|           0x000058ee      41b802000000   mov   r8d, 2
|           0x000058f4      4889542440     mov   qword [var_40h], rdx
|           0x000058f9      4c89c2         mov   rdx, r8               ; int64_t arg3
|           0x000058fc      488b4c2440     mov   rcx, qword [var_40h]  ; int64_t arg4
|           0x00005901      41b801000000   mov   r8d, 1                ; int64_t arg5
|           0x00005907      e8a41a0000     call  sym core::fmt::Arguments::new_v1::h2673b5bf555c0288 ; dbg.new_v1
|           0x0000590c      488dbc24f000.  lea   rdi, [var_f0h]
|           0x00005914      ff15fe420300   call  qword [dbg._print]    ; [0x39c18:8]=0xa2d0 dbg._print
|           0x0000591a      488d052b4702.  lea   rax, [0x0002a04c]     ; "dealempty/usr/src/rustc-1.43.0/src/libcore/slice/mod.rscalled `Option::unwrap()` on a `None` valuesrc/libstd/env.rsfailed to ge"
|           0x00005921      488d0d214702.  lea   rcx, [0x0002a049]     ; "cardealempty/usr/src/rustc-1.43.0/src/libcore/slice/mod.rscalled `Option::unwrap()` on a `None` valuesrc/libstd/env.rsfailed to"
|           0x00005928      488d15174702.  lea   rdx, [0x0002a046]     ; "artcardealempty/usr/src/rustc-1.43.0/src/libcore/slice/mod.rscalled `Option::unwrap()` on a `None` valuesrc/libstd/env.rsfailed"
|           0x0000592f      488d350b4702.  lea   rsi, [0x0002a041]     ; "beachartcardealempty/usr/src/rustc-1.43.0/src/libcore/slice/mod.rscalled `Option::unwrap()` on a `None` valuesrc/libstd/env.rsf"
|           0x00005936      488d3d134702.  lea   rdi, [0x0002a050]     ; "empty/usr/src/rustc-1.43.0/src/libcore/slice/mod.rscalled `Option::unwrap()` on a `None` valuesrc/libstd/env.rsfailed to get en"
|           0x0000593d      4889bc243801.  mov   qword [strings], rdi
|           0x00005945      48c784244001.  mov   qword [var_140h], 5
|           0x00005951      4889b4244801.  mov   qword [var_148h], rsi
EOF
RUN


NAME="function info integration 2 rust"
FILE=bins/elf/dwarf_rust_bubble 
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=false
aaa
pd 40 @  dbg.bubble_sort_i32
EOF
EXPECT=<<EOF
            ; CALL XREF from rust::main::h523dcf5432fcfd88 @ 0x5875 ; dbg.main
            ;-- rust::bubble_sort::h0777bc845caabc60:
            ;-- dbg.bubble_sort_i32:
/ dbg.bubble_sort<i32> (int64_t arg1, int64_t arg2);
|           ; var int64_t var_fh @ rsp+0xf
|           ; var int64_t var_10h @ rsp+0x10
|           ; var int64_t var_18h @ rsp+0x18
|           ; var int64_t var_20h @ rsp+0x20
|           ; var int64_t var_28h @ rsp+0x28
|           ; var int64_t var_30h @ rsp+0x30
|           ; var int64_t var_38h @ rsp+0x38
|           ; var int64_t var_40h @ rsp+0x40
|           ; var int64_t var_48h @ rsp+0x48
|           ; var usize n @ rsp+0x50
|           ; var bool swapped @ rsp+0x5f
|           ; var int64_t var_60h @ rsp+0x60
|           ; var int64_t var_68h @ rsp+0x68
|           ; var Range<usize> iter @ rsp+0x70
|           ; var int64_t var_78h @ rsp+0x78
|           ; var int64_t var_80h @ rsp+0x80
|           ; var int64_t var_88h @ rsp+0x88
|           ; var &mut [i32] values @ rsp+0x90
|           ; var int64_t var_98h @ rsp+0x98
|           ; var usize val @ rsp+0xa0
|           ; var usize __next @ rsp+0xa8
|           ; var usize i @ rsp+0xb0
|           ; arg int64_t arg1 @ rdi
|           ; arg int64_t arg2 @ rsi
|           0x00005270      4881ecb80000.  sub   rsp, 0xb8             ; void bubble_sort<i32>(&mut [i32] values);
|           0x00005277      4889bc249000.  mov   qword [values], rdi   ; arg1
|           0x0000527f      4889b4249800.  mov   qword [var_98h], rsi  ; arg2
|           0x00005287      48897c2448     mov   qword [var_48h], rdi  ; arg1
|           0x0000528c      4889742440     mov   qword [var_40h], rsi  ; arg2
|           ; DATA XREF from core::fmt::builders::DebugTuple::finish::hfbbe40c195c334d6 @ 0x28b56
|           0x00005291      e8ea090000     call  sym core::slice::_<impl [T]>::len::hbaf7153778228b73 ; dbg.len<i32>
|           0x00005296      4889442450     mov   qword [n], rax
|           0x0000529b      c644245f01     mov   byte [swapped], 1
|           ; CODE XREF from rust::bubble_sort::h0777bc845caabc60 @ 0x5441
|           0x000052a0      f644245f01     test  byte [swapped], 1
|       ,=< 0x000052a5      7508           jne   0x52af
|       |   0x000052a7      4881c4b80000.  add   rsp, 0xb8
|       |   0x000052ae      c3             ret
|       |   ; CODE XREF from rust::bubble_sort::h0777bc845caabc60 @ 0x52a5
|       `-> 0x000052af      c644245f00     mov   byte [swapped], 0
|           0x000052b4      488b442450     mov   rax, qword [n]
|           0x000052b9      48c744246001.  mov   qword [var_60h], 1
|           0x000052c2      4889442468     mov   qword [var_68h], rax
|           0x000052c7      488b7c2460     mov   rdi, qword [var_60h]  ; int64_t arg1
|           0x000052cc      488b742468     mov   rsi, qword [var_68h]  ; int64_t arg2
|           0x000052d1      e83a140000     call  sym <I as core::iter::traits::collect::IntoIterator>::into_iter::h12f1e7995fb38cf5 ; dbg.into_iter<core::ops::range::Range<usize>>
|           0x000052d6      4889442438     mov   qword [var_38h], rax
|           0x000052db      4889542430     mov   qword [var_30h], rdx
|           0x000052e0      488b442438     mov   rax, qword [var_38h]
|           0x000052e5      4889442470     mov   qword [iter], rax
|           0x000052ea      488b4c2430     mov   rcx, qword [var_30h]
|           0x000052ef      48894c2478     mov   qword [var_78h], rcx
|           ; CODE XREF from rust::bubble_sort::h0777bc845caabc60 @ 0x5432
|           0x000052f4      488d7c2470     lea   rdi, [iter]           ; int64_t arg1
|           0x000052f9      e812130000     call  sym core::iter::range::_<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next::h707e8283b20ce50a ; dbg.next<usize>
|           0x000052fe      488994248800.  mov   qword [var_88h], rdx
|           0x00005306      488984248000.  mov   qword [var_80h], rax
|           0x0000530e      488b84248000.  mov   rax, qword [var_80h]
|           0x00005316      4885c0         test  rax, rax
|       ,=< 0x00005319      7404           je    0x531f
|      ,==< 0x0000531b      eb00           jmp   0x531d
|      ||   ; CODE XREF from rust::bubble_sort::h0777bc845caabc60 @ 0x531b
|     ,`--> 0x0000531d      eb23           jmp   0x5342
|     | |   ; CODE XREF from rust::bubble_sort::h0777bc845caabc60 @ 0x5319
|     | `-> 0x0000531f      488b442450     mov   rax, qword [n]
|     |     0x00005324      482d01000000   sub   rax, 1
|     |     0x0000532a      0f92c1         setb  cl
|     |     0x0000532d      f6c101         test  cl, 1
|     |     0x00005330      4889442428     mov   qword [var_28h], rax
|     | ,=< 0x00005335      0f857f010000   jne   0x54ba
EOF
RUN

NAME="big endian variable info"
FILE=bins/elf/ppc64_sudoku_dwarf 
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=false
aaa
pdf @  dbg.init
EOF
EXPECT=<<EOF
            ; CALL XREF from dbg.main @ 0x10001ae8
            ;-- Grid::init():
            ;-- method.Grid.init:
/ dbg.init (Grid * const this);
|           ; arg Grid * const this @ r3
|           0x100012bc      39030144       addi  r8, r3, 0x144         ; arg1 [0m; void init(Grid * const this);
|           0x100012c0      38e30168       addi  r7, r3, 0x168         ; arg1
|           0x100012c4      39400000       li    r10, 0
|           ; CODE XREF from Grid::init() @ 0x100012e8
|       .-> 0x100012c8      3928febc       addi  r9, r8, 0xfebc
|       :   0x100012cc      38c00009       li    r6, 9
|       :   0x100012d0      7cc903a6       mtctr r6
|       :   ; CODE XREF from Grid::init() @ 0x100012dc
|      .--> 0x100012d4      91490000       stw   r10, 0(r9)
|      ::   0x100012d8      39290024       addi  r9, r9, 0x24
|      `==< 0x100012dc      4200fff8       bdnz  0x100012d4
|       :   0x100012e0      39080004       addi  r8, r8, 4
|       :   0x100012e4      7c283840       cmpld r8, r7
|       `=< 0x100012e8      4082ffe0       bne   0x100012c8
|           0x100012ec      39200000       li    r9, 0
|           0x100012f0      91230144       stw   r9, 0x144(r3)         ; arg1
|           0x100012f4      91230148       stw   r9, 0x148(r3)         ; arg1
\           0x100012f8      4e800020       blr
EOF
RUN

NAME="function info integration ada"
FILE=bins/elf/ada_test_dwarf 
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=false
aaa
pdf @  dbg.main
EOF
EXPECT=<<EOF
            ; DATA XREF from entry0 @ 0x2271
            ;-- main:
/ int dbg.main (int argc, char **argv, char **envp);
|           ; var char **var_28h @ rbp-0x28
|           ; var char **var_20h @ rbp-0x20
|           ; var int64_t var_14h @ rbp-0x14
|           ; var system__address volatile ensure_reference @ rbp-0x10
|           ; var ada_main__main__seh___PAD seh @ rbp-0x8
|           ; arg int argc @ rdi
|           ; arg char **argv @ rsi
|           ; arg char **envp @ rdx
|           0x00002742      55             push  rbp                   ; integer main(integer const argc,void * const argv,void * const envp);
|           0x00002743      4889e5         mov   rbp, rsp
|           0x00002746      4883ec30       sub   rsp, 0x30
|           0x0000274a      897dec         mov   dword [var_14h], edi  ; argc
|           0x0000274d      488975e0       mov   qword [var_20h], rsi  ; argv
|           0x00002751      488955d8       mov   qword [var_28h], rdx  ; envp
|           0x00002755      488d05dc0800.  lea   rax, obj.__gnat_ada_main_program_name ; 0x3038 ; "_ada_ada_test"
|           0x0000275c      488945f0       mov   qword [ensure_reference], rax
|           0x00002760      8b45ec         mov   eax, dword [var_14h]
|           0x00002763      8905572a0000   mov   dword [obj.gnat_argc], eax ; [0x51c0:4]=0
|           0x00002769      488b45e0       mov   rax, qword [var_20h]
|           0x0000276d      488905b42900.  mov   qword [obj.gnat_argv], rax ; [0x5128:8]=0
|           0x00002774      488b45d8       mov   rax, qword [var_28h]
|           0x00002778      488905112900.  mov   qword [obj.gnat_envp], rax ; [0x5090:8]=0
|           0x0000277f      488d45f8       lea   rax, [seh.F]
|           0x00002783      4889c7         mov   rdi, rax
|           0x00002786      e875f9ffff     call  sym.imp.__gnat_initialize
|           0x0000278b      e8e8fcffff     call  dbg.adainit
|           0x00002790      e847000000     call  dbg._ada_ada_test
|           0x00002795      e8b6fcffff     call  dbg.adafinal
|           0x0000279a      e8d1f8ffff     call  sym.imp.__gnat_finalize
|           0x0000279f      8b054b290000   mov   eax, dword [obj.gnat_exit_status] ; [0x50f0:4]=0
|           0x000027a5      c9             leave
\           0x000027a6      c3             ret
EOF
RUN

NAME="function info integration freepascal"
FILE=bins/efi/freepascal_test_dwarf 
CMDS=<<EOF
e asm.bytes=true
e asm.dwarf=false
aaa
pd 20 @  dbg.palya
EOF
EXPECT=<<EOF
            ; CALL XREFS from sym.main @ +0x1a87, +0x1c7d, +0x23f3, +0x3679
            ;-- P$MOZGKIGYO_$$_PALYA$SMALLINT$SMALLINT:
/ dbg.palya ();
|           ; var int64_t var_28h @ rbp-0x28
|           ; var int64_t var_20h @ rbp-0x20
|           ; var SmallInt i @ rbp-0x14
|           ; var SmallInt szel @ rbp-0x10
|           ; var SmallInt mag @ rbp-0x8
|           0x00401980      55             push  rbp                   ; void palya(SmallInt mag,SmallInt szel);
|           0x00401981      4889e5         mov   rbp, rsp
|           0x00401984      488d6424d0     lea   rsp, [rsp - 0x30]
|           0x00401989      48895dd8       mov   qword [var_28h], rbx
|           0x0040198d      4c8965e0       mov   qword [var_20h], r12
|           0x00401991      66897df8       mov   word [mag], di
|           0x00401995      668975f0       mov   word [szel], si
|           0x00401999      b801000000     mov   eax, 1
|           0x0040199e      bf01000000     mov   edi, 1
|           0x004019a3      89c6           mov   esi, eax
|           0x004019a5      e8b6a10200     call  sym.CRT____GOTOXY_TCRTCOORD_TCRTCOORD
|           0x004019aa      66448b65f0     mov   r12w, word [szel]
|           0x004019af      66c745ec0100   mov   word [i], 1
|           0x004019b5      66443b65ec     cmp   r12w, word [i]
|       ,=< 0x004019ba      7c45           jl    0x401a01
|       |   0x004019bc      66816dec0100   sub   word [i], 1
|       |   0x004019c2      66666690       nop
|       |   0x004019c6      6690           nop
|       |   ; CODE XREF from dbg.palya @ 0x4019ff
|       |   0x004019c8      668145ec0100   add   word [i], 1
|       |   0x004019ce      e82d280200     call  sym.fpc_get_output
EOF
RUN

NAME=Invalid kind for DW_AT_name
FILE=bins/elf/dwarf3_c.elf.patched0
CMDS=<<EOF
aaa
id
EOF
EXPECT=<<EOF
   1      DW_TAG_compile_unit       [has children] (0x0)
    DW_AT_producer                 DW_FORM_strp                  
    DW_AT_language                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_comp_dir                 DW_FORM_strp                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_stmt_list                DW_FORM_data4                 
   2      DW_TAG_variable           [no children] (0x13)
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_location                 DW_FORM_block1                
   3      DW_TAG_base_type          [no children] (0x26)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_encoding                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_data4                 
   4      DW_TAG_subprogram         [has children] (0x31)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   5      DW_TAG_variable           [no children] (0x4d)
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   6      DW_TAG_subprogram         [has children] (0x5e)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
   7      DW_TAG_variable           [no children] (0x76)
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  

  Compilation Unit @ offset 0x0:
   Length:        0xa9
   Version:       3
   Abbrev Offset: 0x0
   Pointer Size:  8

<0xb>: Abbrev Number: 1    (DW_TAG_compile_unit)
     DW_AT_producer            : (indirect string, offset: 0x0): GNU C17 9.3.0 -mtune=generic -march=x86-64 -gdwarf-3 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
     DW_AT_language            : 12   (C99)
     DW_AT_name                : (indirect string, offset: 0x94): main.c
     DW_AT_comp_dir            : (indirect string, offset: 0xa0): /home/hound/r2test/dwarf/c
     DW_AT_low_pc              : 0x1129
     DW_AT_high_pc             : 0x1156
     DW_AT_stmt_list           : 0
<0x2d>: Abbrev Number: 2    (DW_TAG_variable)
     DW_AT_name                : a
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 1
     DW_AT_decl_column         : 5
     DW_AT_type                : <0x42>
     DW_AT_external            : 1
     DW_AT_location            : 9 byte block: 0x03 0x14 0x40 0x00 0x00 0x00 0x00 0x00 0x00
<0x42>: Abbrev Number: 3    (DW_TAG_base_type)
     DW_AT_byte_size           : 4
     DW_AT_encoding            : 5
     DW_AT_name                : 7630441
<0x49>: Abbrev Number: 4    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x9b): main
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 7
     DW_AT_decl_column         : 5
     DW_AT_type                : <0x42>
     DW_AT_low_pc              : 0x1134
     DW_AT_high_pc             : 0x1156
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x7b>
<0x6d>: Abbrev Number: 5    (DW_TAG_variable)
     DW_AT_name                : i
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 9
     DW_AT_decl_column         : 6
     DW_AT_type                : <0x42>
     DW_AT_location            : 2 byte block: 0x91 0x6c
<0x7a>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x7b>: Abbrev Number: 6    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : foo
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 2
     DW_AT_decl_column         : 6
     DW_AT_low_pc              : 0x1129
     DW_AT_high_pc             : 0x1134
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
<0x97>: Abbrev Number: 7    (DW_TAG_variable)
     DW_AT_name                : b
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 4
     DW_AT_decl_column         : 15
     DW_AT_type                : <0x42>
<0xa1>: Abbrev Number: 7    (DW_TAG_variable)
     DW_AT_name                : c
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 5
     DW_AT_decl_column         : 6
     DW_AT_type                : <0x42>
<0xab>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xac>: Abbrev Number: 0    (DW_TAG_null_entry)

Contents of the .debug_aranges section:
  Address Range Set
   Unit Length:           0x2c
   64bit:                 false
   Version:               2
   Offset in .debug_info: 0x0
   Address Size:          8
   Segment Size:          0
   Ranges:
    address            length
    0x0000000000001129 0x000000000000002d
    0x0000000000000000 0x0000000000000000

Raw dump of debug contents of section .debug_line:

 Header information:
  Length:                             70
  DWARF Version:                      3
  Header Length:                      29
  Minimum Instruction Length:         1
  Maximum Operations per Instruction: 0
  Initial value of 'is_stmt':         1
  Line Base:                          -5
  Line Range:                         14
  Opcode Base:                        13

 Opcodes:
  Opcode 1 has 0 arg
  Opcode 2 has 1 arg
  Opcode 3 has 1 arg
  Opcode 4 has 1 arg
  Opcode 5 has 1 arg
  Opcode 6 has 0 arg
  Opcode 7 has 0 arg
  Opcode 8 has 0 arg
  Opcode 9 has 1 arg
  Opcode 10 has 0 arg
  Opcode 11 has 0 arg
  Opcode 12 has 1 arg


 The File Name Table:
  Entry Dir     Time      Size       Name
  1     0       0         0          main.c

 Line Number Statements:
  Set column to 1
  Extended opcode 2: set Address to 0x1129
  Special opcode 7: advance Address by 0 to 0x1129 and Line by 2 to 3
  Special opcode 120: advance Address by 8 to 0x1131 and Line by 3 to 6
  Set column to 12
  Special opcode 48: advance Address by 3 to 0x1134 and Line by 1 to 7
  Set column to 2
  Special opcode 174: advance Address by 12 to 0x1140 and Line by 1 to 8
  Set column to 6
  Special opcode 146: advance Address by 10 to 0x114a and Line by 1 to 9
  Set column to 9
  Special opcode 104: advance Address by 7 to 0x1151 and Line by 1 to 10
  Set column to 1
  Special opcode 48: advance Address by 3 to 0x1154 and Line by 1 to 11
  Advance PC by 2 to 0x1156
  Extended opcode 1: End of Sequence

0x00001129	/home/hound/r2test/dwarf/c/main.c	3
0x00001131	/home/hound/r2test/dwarf/c/main.c	6
0x00001134	/home/hound/r2test/dwarf/c/main.c	7
0x00001140	/home/hound/r2test/dwarf/c/main.c	8
0x0000114a	/home/hound/r2test/dwarf/c/main.c	9
0x00001151	/home/hound/r2test/dwarf/c/main.c	10
0x00001154	/home/hound/r2test/dwarf/c/main.c	11
0x00001156	-	-
EOF
RUN

NAME=Infinite Recursion in Type References
FILE=bins/elf/dwarf3_cpp.elf.patched0
CMDS=<<EOF
aaa
id
EOF
EXPECT=<<EOF
   1      DW_TAG_compile_unit       [has children] (0x0)
    DW_AT_producer                 DW_FORM_strp                  
    DW_AT_language                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_comp_dir                 DW_FORM_strp                  
    DW_AT_ranges                   DW_FORM_data4                 
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_entry_pc                 DW_FORM_addr                  
    DW_AT_stmt_list                DW_FORM_data4                 
   2      DW_TAG_structure_type     [has children] (0x15)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   3      DW_TAG_subprogram         [has children] (0x28)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   4      DW_TAG_formal_parameter   [no children] (0x3c)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
   5      DW_TAG_formal_parameter   [no children] (0x45)
    DW_AT_type                     DW_FORM_ref4                  
   6      DW_TAG_member             [no children] (0x4c)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_data_member_location     DW_FORM_data1                 
    DW_AT_artificial               DW_FORM_flag                  
   7      DW_TAG_subprogram         [has children] (0x59)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   8      DW_TAG_subprogram         [has children] (0x71)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   9      DW_TAG_subprogram         [has children] (0x8d)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_vtable_elem_location     DW_FORM_block1                
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   10     DW_TAG_const_type         [no children] (0xab)
    DW_AT_type                     DW_FORM_ref4                  
   11     DW_TAG_pointer_type       [no children] (0xb2)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
   12     DW_TAG_reference_type     [no children] (0xbb)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
   13     DW_TAG_subroutine_type    [has children] (0xc4)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   14     DW_TAG_unspecified_parameters [no children] (0xcd)
   15     DW_TAG_base_type          [no children] (0xd2)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_encoding                 DW_FORM_data1                 
    DW_AT_name                     DW_FORM_string                
   16     DW_TAG_pointer_type       [no children] (0xdd)
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
   17     DW_TAG_structure_type     [has children] (0xe8)
    DW_AT_name                     DW_FORM_string                
    DW_AT_byte_size                DW_FORM_data1                 
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   18     DW_TAG_inheritance        [no children] (0xfb)
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_data_member_location     DW_FORM_data1                 
   19     DW_TAG_subprogram         [has children] (0x104)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   20     DW_TAG_subprogram         [has children] (0x118)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_siblings                 DW_FORM_ref4                  
   21     DW_TAG_subprogram         [has children] (0x130)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_virtuality               DW_FORM_data1                 
    DW_AT_vtable_elem_location     DW_FORM_block1                
    DW_AT_containing_type          DW_FORM_ref4                  
    DW_AT_declaration              DW_FORM_flag                  
    DW_AT_object_pointer           DW_FORM_ref4                  
   22     DW_TAG_subprogram         [has children] (0x14e)
    DW_AT_external                 DW_FORM_flag                  
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   23     DW_TAG_variable           [no children] (0x16a)
    DW_AT_name                     DW_FORM_string                
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   24     DW_TAG_variable           [no children] (0x17b)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_decl_file                DW_FORM_data1                 
    DW_AT_decl_line                DW_FORM_data1                 
    DW_AT_decl_column              DW_FORM_data1                 
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   25     DW_TAG_subprogram         [has children] (0x18c)
    DW_AT_specification            DW_FORM_ref4                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   26     DW_TAG_formal_parameter   [no children] (0x1a0)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
    DW_AT_location                 DW_FORM_block1                
   27     DW_TAG_subprogram         [has children] (0x1ad)
    DW_AT_specification            DW_FORM_ref4                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_inline                   DW_FORM_data1                 
    DW_AT_siblings                 DW_FORM_ref4                  
   28     DW_TAG_formal_parameter   [no children] (0x1ba)
    DW_AT_name                     DW_FORM_strp                  
    DW_AT_type                     DW_FORM_ref4                  
    DW_AT_artificial               DW_FORM_flag                  
   29     DW_TAG_subprogram         [has children] (0x1c5)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_tail_call_sites  DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   30     DW_TAG_formal_parameter   [no children] (0x1dc)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_location                 DW_FORM_block1                
   31     DW_TAG_subprogram         [has children] (0x1e5)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  
    DW_AT_siblings                 DW_FORM_ref4                  
   32     DW_TAG_subprogram         [has children] (0x1fc)
    DW_AT_abstract_origin          DW_FORM_ref4                  
    DW_AT_MIPS_linkage_name        DW_FORM_strp                  
    DW_AT_object_pointer           DW_FORM_ref4                  
    DW_AT_low_pc                   DW_FORM_addr                  
    DW_AT_high_pc                  DW_FORM_addr                  
    DW_AT_frame_base               DW_FORM_block1                
    DW_AT_GNU_all_call_sites       DW_FORM_flag                  

  Compilation Unit @ offset 0x0:
   Length:        0x5a4
   Version:       3
   Abbrev Offset: 0x0
   Pointer Size:  8

<0xb>: Abbrev Number: 1    (DW_TAG_compile_unit)
     DW_AT_producer            : (indirect string, offset: 0x155): GNU C++14 9.3.0 -mtune=generic -march=x86-64 -gdwarf-3 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
     DW_AT_language            : 4   (C++)
     DW_AT_name                : (indirect string, offset: 0x87): main.cpp
     DW_AT_comp_dir            : (indirect string, offset: 0x1f7): /home/hound/r2test/dwarf/cpp
     DW_AT_ranges              : 0
     DW_AT_low_pc              : 0x0
     DW_AT_entry_pc            : 0x0
     DW_AT_stmt_list           : 0
<0x31>: Abbrev Number: 2    (DW_TAG_structure_type)
     DW_AT_name                : (indirect string, offset: 0x12f): Bird
     DW_AT_byte_size           : 8
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 13
     DW_AT_decl_column         : 8
     DW_AT_containing_type     : <0x31>
     DW_AT_siblings            : <0xd8>
<0x42>: Abbrev Number: 3    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x12f): Bird
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x77): _ZN4BirdC4ERKS_
     DW_AT_artificial          : 1
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x56>
     DW_AT_siblings            : <0x62>
<0x56>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xdd>
     DW_AT_artificial          : 1
<0x5c>: Abbrev Number: 5    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xe8>
<0x61>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x62>: Abbrev Number: 6    (DW_TAG_member)
     DW_AT_name                : (indirect string, offset: 0x129): _vptr.Bird
     DW_AT_type                : <0x105>
     DW_AT_data_member_location : 0
     DW_AT_artificial          : 1
<0x6d>: Abbrev Number: 7    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x12f): Bird
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 14
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x233): _ZN4BirdC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x83>
     DW_AT_siblings            : <0x8a>
<0x83>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xdd>
     DW_AT_artificial          : 1
<0x89>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x8a>: Abbrev Number: 8    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x22d): ~Bird
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 15
     DW_AT_decl_column         : 11
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xc8): _ZN4BirdD4Ev
     DW_AT_virtuality          : 1
     DW_AT_containing_type     : <0x31>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0xa5>
     DW_AT_siblings            : <0xb2>
<0xa5>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xdd>
     DW_AT_artificial          : 1
<0xab>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xf9>
     DW_AT_artificial          : 1
<0xb1>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xb2>: Abbrev Number: 9    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : fly
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 16
     DW_AT_decl_column         : 15
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x134): _ZN4Bird3flyEv
     DW_AT_type                : <0xf9>
     DW_AT_virtuality          : 1
     DW_AT_vtable_elem_location : 2 byte block: 0x10 0x02
     DW_AT_containing_type     : <0x31>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0xd0>
<0xd0>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xdd>
     DW_AT_artificial          : 1
<0xd6>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xd7>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xd8>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x31>
<0xdd>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x31>
<0xe3>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0xe3>
<0xe8>: Abbrev Number: 12   (DW_TAG_reference_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0xd8>
<0xee>: Abbrev Number: 13   (DW_TAG_subroutine_type)
     DW_AT_type                : <0xf9>
     DW_AT_siblings            : <0xf9>
<0xf7>: Abbrev Number: 14   (DW_TAG_unspecified_parameters)
<0xf8>: Abbrev Number: 0    (DW_TAG_null_entry)
<0xf9>: Abbrev Number: 15   (DW_TAG_base_type)
     DW_AT_byte_size           : 4
     DW_AT_encoding            : 5
     DW_AT_name                : int
<0x100>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0xf9>
<0x105>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x10b>
<0x10b>: Abbrev Number: 16   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_name                : (indirect string, offset: 0x5b): __vtbl_ptr_type
     DW_AT_type                : <0xee>
<0x115>: Abbrev Number: 17   (DW_TAG_structure_type)
     DW_AT_name                : Dog
     DW_AT_byte_size           : 8
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 7
     DW_AT_decl_column         : 8
     DW_AT_containing_type     : <0x1bc>
     DW_AT_siblings            : <0x1b7>
<0x126>: Abbrev Number: 18   (DW_TAG_inheritance)
     DW_AT_type                : <0x1bc>
     DW_AT_data_member_location : 0
<0x12c>: Abbrev Number: 19   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : Dog
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x21e): _ZN3DogC4ERKS_
     DW_AT_artificial          : 1
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x140>
     DW_AT_siblings            : <0x14c>
<0x140>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x268>
     DW_AT_artificial          : 1
<0x146>: Abbrev Number: 5    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x273>
<0x14b>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x14c>: Abbrev Number: 20   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : Dog
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 8
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xbc): _ZN3DogC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x162>
     DW_AT_siblings            : <0x169>
<0x162>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x268>
     DW_AT_artificial          : 1
<0x168>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x169>: Abbrev Number: 8    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x22): ~Dog
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 9
     DW_AT_decl_column         : 11
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x0): _ZN3DogD4Ev
     DW_AT_virtuality          : 1
     DW_AT_containing_type     : <0x115>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x184>
     DW_AT_siblings            : <0x191>
<0x184>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x268>
     DW_AT_artificial          : 1
<0x18a>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xf9>
     DW_AT_artificial          : 1
<0x190>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x191>: Abbrev Number: 21   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x38): walk
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 10
     DW_AT_decl_column         : 15
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xd5): _ZN3Dog4walkEv
     DW_AT_type                : <0xf9>
     DW_AT_virtuality          : 1
     DW_AT_vtable_elem_location : 2 byte block: 0x10 0x02
     DW_AT_containing_type     : <0x115>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x1af>
<0x1af>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x268>
     DW_AT_artificial          : 1
<0x1b5>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x1b6>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x1b7>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x115>
<0x1bc>: Abbrev Number: 2    (DW_TAG_structure_type)
     DW_AT_name                : (indirect string, offset: 0x122): Mammal
     DW_AT_byte_size           : 8
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 1
     DW_AT_decl_column         : 8
     DW_AT_containing_type     : <0x1bc>
     DW_AT_siblings            : <0x263>
<0x1cd>: Abbrev Number: 3    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x122): Mammal
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x143): _ZN6MammalC4ERKS_
     DW_AT_artificial          : 1
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x1e1>
     DW_AT_siblings            : <0x1ed>
<0x1e1>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x279>
     DW_AT_artificial          : 1
<0x1e7>: Abbrev Number: 5    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x284>
<0x1ec>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x1ed>: Abbrev Number: 6    (DW_TAG_member)
     DW_AT_name                : (indirect string, offset: 0x11c): _vptr.Mammal
     DW_AT_type                : <0x105>
     DW_AT_data_member_location : 0
     DW_AT_artificial          : 1
<0x1f8>: Abbrev Number: 7    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x122): Mammal
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 2
     DW_AT_decl_column         : 3
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xc): _ZN6MammalC4Ev
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x20e>
     DW_AT_siblings            : <0x215>
<0x20e>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x279>
     DW_AT_artificial          : 1
<0x214>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x215>: Abbrev Number: 8    (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x114): ~Mammal
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 3
     DW_AT_decl_column         : 11
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xf6): _ZN6MammalD4Ev
     DW_AT_virtuality          : 1
     DW_AT_containing_type     : <0x1bc>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x230>
     DW_AT_siblings            : <0x23d>
<0x230>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x279>
     DW_AT_artificial          : 1
<0x236>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0xf9>
     DW_AT_artificial          : 1
<0x23c>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x23d>: Abbrev Number: 21   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x38): walk
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 4
     DW_AT_decl_column         : 15
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x90): _ZN6Mammal4walkEv
     DW_AT_type                : <0xf9>
     DW_AT_virtuality          : 1
     DW_AT_vtable_elem_location : 2 byte block: 0x10 0x02
     DW_AT_containing_type     : <0x1bc>
     DW_AT_declaration         : 1
     DW_AT_object_pointer      : <0x25b>
<0x25b>: Abbrev Number: 4    (DW_TAG_formal_parameter)
     DW_AT_type                : <0x279>
     DW_AT_artificial          : 1
<0x261>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x262>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x263>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x1bc>
<0x268>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x115>
<0x26e>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x268>
<0x273>: Abbrev Number: 12   (DW_TAG_reference_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x1b7>
<0x279>: Abbrev Number: 11   (DW_TAG_pointer_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x1bc>
<0x27f>: Abbrev Number: 10   (DW_TAG_const_type)
     DW_AT_type                : <0x279>
<0x284>: Abbrev Number: 12   (DW_TAG_reference_type)
     DW_AT_byte_size           : 8
     DW_AT_type                : <0x263>
<0x28a>: Abbrev Number: 22   (DW_TAG_subprogram)
     DW_AT_external            : 1
     DW_AT_name                : (indirect string, offset: 0x27): main
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 19
     DW_AT_decl_column         : 5
     DW_AT_type                : <0xf9>
     DW_AT_low_pc              : 0x1169
     DW_AT_high_pc             : 0x11ed
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x2d8>
<0x2ae>: Abbrev Number: 23   (DW_TAG_variable)
     DW_AT_name                : b
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 20
     DW_AT_decl_column         : 9
     DW_AT_type                : <0xdd>
     DW_AT_location            : 2 byte block: 0x91 0x50
<0x2bb>: Abbrev Number: 23   (DW_TAG_variable)
     DW_AT_name                : m
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 21
     DW_AT_decl_column         : 11
     DW_AT_type                : <0x279>
     DW_AT_location            : 2 byte block: 0x91 0x58
<0x2c8>: Abbrev Number: 24   (DW_TAG_variable)
     DW_AT_name                : (indirect string, offset: 0x1b): output
     DW_AT_decl_file           : 1
     DW_AT_decl_line           : 24
     DW_AT_decl_column         : 7
     DW_AT_type                : <0xf9>
     DW_AT_location            : 2 byte block: 0x91 0x4c
<0x2d7>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x2d8>: Abbrev Number: 25   (DW_TAG_subprogram)
     DW_AT_specification       : <0xb2>
     DW_AT_object_pointer      : <0x2f8>
     DW_AT_low_pc              : 0x137a
     DW_AT_high_pc             : 0x138d
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x306>
<0x2f8>: Abbrev Number: 26   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0xe3>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x305>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x306>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x8a>
     DW_AT_object_pointer      : <0x314>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x329>
<0x314>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0xe3>
     DW_AT_artificial          : 1
<0x31e>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x214): __in_chrg
     DW_AT_type                : <0x100>
     DW_AT_artificial          : 1
<0x328>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x329>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x306>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xe4): _ZN4BirdD0Ev
     DW_AT_object_pointer      : <0x34d>
     DW_AT_low_pc              : 0x134a
     DW_AT_high_pc             : 0x1379
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x356>
<0x34d>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x314>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x355>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x356>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x306>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xa2): _ZN4BirdD2Ev
     DW_AT_object_pointer      : <0x37a>
     DW_AT_low_pc              : 0x132c
     DW_AT_high_pc             : 0x1349
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x383>
<0x37a>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x314>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x382>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x383>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x6d>
     DW_AT_object_pointer      : <0x391>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x39c>
<0x391>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0xe3>
     DW_AT_artificial          : 1
<0x39b>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x39c>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x383>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0xaf): _ZN4BirdC2Ev
     DW_AT_object_pointer      : <0x3c0>
     DW_AT_low_pc              : 0x130e
     DW_AT_high_pc             : 0x132b
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x3c9>
<0x3c0>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x391>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x3c8>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x3c9>: Abbrev Number: 25   (DW_TAG_subprogram)
     DW_AT_specification       : <0x191>
     DW_AT_object_pointer      : <0x3e9>
     DW_AT_low_pc              : 0x12fa
     DW_AT_high_pc             : 0x130d
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x3f7>
<0x3e9>: Abbrev Number: 26   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0x26e>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x3f6>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x3f7>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x169>
     DW_AT_object_pointer      : <0x405>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x41a>
<0x405>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0x26e>
     DW_AT_artificial          : 1
<0x40f>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x214): __in_chrg
     DW_AT_type                : <0x100>
     DW_AT_artificial          : 1
<0x419>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x41a>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x3f7>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x2c): _ZN3DogD0Ev
     DW_AT_object_pointer      : <0x43e>
     DW_AT_low_pc              : 0x12ca
     DW_AT_high_pc             : 0x12f9
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x447>
<0x43e>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x405>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x446>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x447>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x3f7>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x1eb): _ZN3DogD2Ev
     DW_AT_object_pointer      : <0x46b>
     DW_AT_low_pc              : 0x129c
     DW_AT_high_pc             : 0x12c9
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x474>
<0x46b>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x405>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x473>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x474>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x14c>
     DW_AT_object_pointer      : <0x482>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x48d>
<0x482>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0x26e>
     DW_AT_artificial          : 1
<0x48c>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x48d>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x474>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x6b): _ZN3DogC2Ev
     DW_AT_object_pointer      : <0x4b1>
     DW_AT_low_pc              : 0x126e
     DW_AT_high_pc             : 0x129b
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x4ba>
<0x4b1>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x482>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x4b9>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x4ba>: Abbrev Number: 25   (DW_TAG_subprogram)
     DW_AT_specification       : <0x23d>
     DW_AT_object_pointer      : <0x4da>
     DW_AT_low_pc              : 0x125a
     DW_AT_high_pc             : 0x126d
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x4e8>
<0x4da>: Abbrev Number: 26   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0x27f>
     DW_AT_artificial          : 1
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x4e7>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x4e8>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x215>
     DW_AT_object_pointer      : <0x4f6>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x50b>
<0x4f6>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0x27f>
     DW_AT_artificial          : 1
<0x500>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0x214): __in_chrg
     DW_AT_type                : <0x100>
     DW_AT_artificial          : 1
<0x50a>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x50b>: Abbrev Number: 29   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x4e8>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x3d): _ZN6MammalD0Ev
     DW_AT_object_pointer      : <0x52f>
     DW_AT_low_pc              : 0x122a
     DW_AT_high_pc             : 0x1259
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_tail_call_sites : 1
     DW_AT_siblings            : <0x538>
<0x52f>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x4f6>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x537>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x538>: Abbrev Number: 31   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x4e8>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x4c): _ZN6MammalD2Ev
     DW_AT_object_pointer      : <0x55c>
     DW_AT_low_pc              : 0x120c
     DW_AT_high_pc             : 0x1229
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
     DW_AT_siblings            : <0x565>
<0x55c>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x4f6>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x564>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x565>: Abbrev Number: 27   (DW_TAG_subprogram)
     DW_AT_specification       : <0x1f8>
     DW_AT_object_pointer      : <0x573>
     DW_AT_inline              : 2
     DW_AT_siblings            : <0x57e>
<0x573>: Abbrev Number: 28   (DW_TAG_formal_parameter)
     DW_AT_name                : (indirect string, offset: 0xf1): this
     DW_AT_type                : <0x27f>
     DW_AT_artificial          : 1
<0x57d>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x57e>: Abbrev Number: 32   (DW_TAG_subprogram)
     DW_AT_abstract_origin     : <0x565>
     DW_AT_MIPS_linkage_name   : (indirect string, offset: 0x105): _ZN6MammalC2Ev
     DW_AT_object_pointer      : <0x59e>
     DW_AT_low_pc              : 0x11ee
     DW_AT_high_pc             : 0x120b
     DW_AT_frame_base          : 1 byte block: 0x9c
     DW_AT_GNU_all_call_sites  : 1
<0x59e>: Abbrev Number: 30   (DW_TAG_formal_parameter)
     DW_AT_abstract_origin     : <0x573>
     DW_AT_location            : 2 byte block: 0x91 0x68
<0x5a6>: Abbrev Number: 0    (DW_TAG_null_entry)
<0x5a7>: Abbrev Number: 0    (DW_TAG_null_entry)

Contents of the .debug_aranges section:
  Address Range Set
   Unit Length:           0xec
   64bit:                 false
   Version:               2
   Offset in .debug_info: 0x0
   Address Size:          8
   Segment Size:          0
   Ranges:
    address            length
    0x0000000000001169 0x0000000000000084
    0x00000000000011ee 0x000000000000001d
    0x000000000000120c 0x000000000000001d
    0x000000000000122a 0x000000000000002f
    0x000000000000125a 0x0000000000000013
    0x000000000000126e 0x000000000000002d
    0x000000000000129c 0x000000000000002d
    0x00000000000012ca 0x000000000000002f
    0x00000000000012fa 0x0000000000000013
    0x000000000000130e 0x000000000000001d
    0x000000000000132c 0x000000000000001d
    0x000000000000134a 0x000000000000002f
    0x000000000000137a 0x0000000000000013
    0x0000000000000000 0x0000000000000000

Raw dump of debug contents of section .debug_line:

 Header information:
  Length:                             400
  DWARF Version:                      3
  Header Length:                      31
  Minimum Instruction Length:         1
  Maximum Operations per Instruction: 0
  Initial value of 'is_stmt':         1
  Line Base:                          -5
  Line Range:                         14
  Opcode Base:                        13

 Opcodes:
  Opcode 1 has 0 arg
  Opcode 2 has 1 arg
  Opcode 3 has 1 arg
  Opcode 4 has 1 arg
  Opcode 5 has 1 arg
  Opcode 6 has 0 arg
  Opcode 7 has 0 arg
  Opcode 8 has 0 arg
  Opcode 9 has 1 arg
  Opcode 10 has 0 arg
  Opcode 11 has 0 arg
  Opcode 12 has 1 arg


 The File Name Table:
  Entry Dir     Time      Size       Name
  1     0       0         0          main.cpp

 Line Number Statements:
  Set column to 3
  Extended opcode 2: set Address to 0x11ee
  Special opcode 6: advance Address by 0 to 0x11ee and Line by 1 to 2
  Set column to 12
  Special opcode 173: advance Address by 12 to 0x11fa and Line by 0 to 2
  Set column to 15
  Special opcode 201: advance Address by 14 to 0x1208 and Line by 0 to 2
  Advance PC by 3 to 0x120b
  Extended opcode 1: End of Sequence

  Set column to 11
  Extended opcode 2: set Address to 0x120c
  Special opcode 7: advance Address by 0 to 0x120c and Line by 2 to 3
  Set column to 21
  Special opcode 173: advance Address by 12 to 0x1218 and Line by 0 to 3
  Set column to 22
  Special opcode 201: advance Address by 14 to 0x1226 and Line by 0 to 3
  Advance PC by 3 to 0x1229
  Extended opcode 1: End of Sequence

  Set column to 11
  Extended opcode 2: set Address to 0x122a
  Special opcode 7: advance Address by 0 to 0x122a and Line by 2 to 3
  Set column to 22
  Special opcode 229: advance Address by 16 to 0x123a and Line by 0 to 3
  Advance PC by 31 to 0x1259
  Extended opcode 1: End of Sequence

  Set column to 15
  Extended opcode 2: set Address to 0x125a
  Special opcode 8: advance Address by 0 to 0x125a and Line by 3 to 4
  Set column to 31
  Special opcode 173: advance Address by 12 to 0x1266 and Line by 0 to 4
  Set column to 34
  Special opcode 75: advance Address by 5 to 0x126b and Line by 0 to 4
  Advance PC by 2 to 0x126d
  Extended opcode 1: End of Sequence

  Set column to 3
  Extended opcode 2: set Address to 0x126e
  Special opcode 12: advance Address by 0 to 0x126e and Line by 7 to 8
  Set column to 9
  Special opcode 229: advance Address by 16 to 0x127e and Line by 0 to 8
  Set column to 12
  Advance PC by constant 17 to 0x128f
  Special opcode 131: advance Address by 9 to 0x1298 and Line by 0 to 8
  Advance PC by 3 to 0x129b
  Extended opcode 1: End of Sequence

  Set column to 11
  Extended opcode 2: set Address to 0x129c
  Special opcode 13: advance Address by 0 to 0x129c and Line by 8 to 9
  Set column to 18
  Special opcode 229: advance Address by 16 to 0x12ac and Line by 0 to 9
  Set column to 19
  Advance PC by constant 17 to 0x12bd
  Special opcode 131: advance Address by 9 to 0x12c6 and Line by 0 to 9
  Advance PC by 3 to 0x12c9
  Extended opcode 1: End of Sequence

  Set column to 11
  Extended opcode 2: set Address to 0x12ca
  Special opcode 13: advance Address by 0 to 0x12ca and Line by 8 to 9
  Set column to 19
  Special opcode 229: advance Address by 16 to 0x12da and Line by 0 to 9
  Advance PC by 31 to 0x12f9
  Extended opcode 1: End of Sequence

  Set column to 15
  Extended opcode 2: set Address to 0x12fa
  Advance line by 9, to 10
  Copy
  Set column to 31
  Special opcode 173: advance Address by 12 to 0x1306 and Line by 0 to 10
  Set column to 34
  Special opcode 75: advance Address by 5 to 0x130b and Line by 0 to 10
  Advance PC by 2 to 0x130d
  Extended opcode 1: End of Sequence

  Set column to 3
  Extended opcode 2: set Address to 0x130e
  Advance line by 13, to 14
  Copy
  Set column to 10
  Special opcode 173: advance Address by 12 to 0x131a and Line by 0 to 14
  Set column to 13
  Special opcode 201: advance Address by 14 to 0x1328 and Line by 0 to 14
  Advance PC by 3 to 0x132b
  Extended opcode 1: End of Sequence

  Set column to 11
  Extended opcode 2: set Address to 0x132c
  Advance line by 14, to 15
  Copy
  Set column to 19
  Special opcode 173: advance Address by 12 to 0x1338 and Line by 0 to 15
  Set column to 20
  Special opcode 201: advance Address by 14 to 0x1346 and Line by 0 to 15
  Advance PC by 3 to 0x1349
  Extended opcode 1: End of Sequence

  Set column to 11
  Extended opcode 2: set Address to 0x134a
  Advance line by 14, to 15
  Copy
  Set column to 20
  Special opcode 229: advance Address by 16 to 0x135a and Line by 0 to 15
  Advance PC by 31 to 0x1379
  Extended opcode 1: End of Sequence

  Set column to 15
  Extended opcode 2: set Address to 0x137a
  Advance line by 15, to 16
  Copy
  Set column to 30
  Special opcode 173: advance Address by 12 to 0x1386 and Line by 0 to 16
  Set column to 33
  Special opcode 75: advance Address by 5 to 0x138b and Line by 0 to 16
  Advance PC by 2 to 0x138d
  Extended opcode 1: End of Sequence

  Set column to 12
  Extended opcode 2: set Address to 0x1169
  Advance line by 18, to 19
  Copy
  Set column to 16
  Special opcode 190: advance Address by 13 to 0x1176 and Line by 3 to 22
  Set column to 5
  Advance PC by constant 17 to 0x1187
  Special opcode 61: advance Address by 4 to 0x118b and Line by 0 to 22
  Set column to 15
  Special opcode 62: advance Address by 4 to 0x118f and Line by 1 to 23
  Set column to 5
  Advance PC by constant 17 to 0x11a0
  Special opcode 61: advance Address by 4 to 0x11a4 and Line by 0 to 23
  Set column to 7
  Special opcode 62: advance Address by 4 to 0x11a8 and Line by 1 to 24
  Set column to 20
  Special opcode 104: advance Address by 7 to 0x11af and Line by 1 to 25
  Set column to 19
  Special opcode 201: advance Address by 14 to 0x11bd and Line by 0 to 25
  Set column to 10
  Special opcode 131: advance Address by 9 to 0x11c6 and Line by 0 to 25
  Set column to 21
  Special opcode 48: advance Address by 3 to 0x11c9 and Line by 1 to 26
  Set column to 20
  Special opcode 201: advance Address by 14 to 0x11d7 and Line by 0 to 26
  Set column to 10
  Special opcode 131: advance Address by 9 to 0x11e0 and Line by 0 to 26
  Special opcode 48: advance Address by 3 to 0x11e3 and Line by 1 to 27
  Set column to 1
  Special opcode 48: advance Address by 3 to 0x11e6 and Line by 1 to 28
  Advance PC by 7 to 0x11ed
  Extended opcode 1: End of Sequence

0x00001169	/home/hound/r2test/dwarf/cpp/main.cpp	19
0x00001176	/home/hound/r2test/dwarf/cpp/main.cpp	22
0x0000118b	/home/hound/r2test/dwarf/cpp/main.cpp	22
0x0000118f	/home/hound/r2test/dwarf/cpp/main.cpp	23
0x000011a4	/home/hound/r2test/dwarf/cpp/main.cpp	23
0x000011a8	/home/hound/r2test/dwarf/cpp/main.cpp	24
0x000011af	/home/hound/r2test/dwarf/cpp/main.cpp	25
0x000011bd	/home/hound/r2test/dwarf/cpp/main.cpp	25
0x000011c6	/home/hound/r2test/dwarf/cpp/main.cpp	25
0x000011c9	/home/hound/r2test/dwarf/cpp/main.cpp	26
0x000011d7	/home/hound/r2test/dwarf/cpp/main.cpp	26
0x000011e0	/home/hound/r2test/dwarf/cpp/main.cpp	26
0x000011e3	/home/hound/r2test/dwarf/cpp/main.cpp	27
0x000011e6	/home/hound/r2test/dwarf/cpp/main.cpp	28
0x000011ed	-	-
0x000011ee	/home/hound/r2test/dwarf/cpp/main.cpp	2
0x000011fa	/home/hound/r2test/dwarf/cpp/main.cpp	2
0x00001208	/home/hound/r2test/dwarf/cpp/main.cpp	2
0x0000120b	-	-
0x0000120c	/home/hound/r2test/dwarf/cpp/main.cpp	3
0x00001218	/home/hound/r2test/dwarf/cpp/main.cpp	3
0x00001226	/home/hound/r2test/dwarf/cpp/main.cpp	3
0x00001229	-	-
0x0000122a	/home/hound/r2test/dwarf/cpp/main.cpp	3
0x0000123a	/home/hound/r2test/dwarf/cpp/main.cpp	3
0x00001259	-	-
0x0000125a	/home/hound/r2test/dwarf/cpp/main.cpp	4
0x00001266	/home/hound/r2test/dwarf/cpp/main.cpp	4
0x0000126b	/home/hound/r2test/dwarf/cpp/main.cpp	4
0x0000126d	-	-
0x0000126e	/home/hound/r2test/dwarf/cpp/main.cpp	8
0x0000127e	/home/hound/r2test/dwarf/cpp/main.cpp	8
0x00001298	/home/hound/r2test/dwarf/cpp/main.cpp	8
0x0000129b	-	-
0x0000129c	/home/hound/r2test/dwarf/cpp/main.cpp	9
0x000012ac	/home/hound/r2test/dwarf/cpp/main.cpp	9
0x000012c6	/home/hound/r2test/dwarf/cpp/main.cpp	9
0x000012c9	-	-
0x000012ca	/home/hound/r2test/dwarf/cpp/main.cpp	9
0x000012da	/home/hound/r2test/dwarf/cpp/main.cpp	9
0x000012f9	-	-
0x000012fa	/home/hound/r2test/dwarf/cpp/main.cpp	10
0x00001306	/home/hound/r2test/dwarf/cpp/main.cpp	10
0x0000130b	/home/hound/r2test/dwarf/cpp/main.cpp	10
0x0000130d	-	-
0x0000130e	/home/hound/r2test/dwarf/cpp/main.cpp	14
0x0000131a	/home/hound/r2test/dwarf/cpp/main.cpp	14
0x00001328	/home/hound/r2test/dwarf/cpp/main.cpp	14
0x0000132b	-	-
0x0000132c	/home/hound/r2test/dwarf/cpp/main.cpp	15
0x00001338	/home/hound/r2test/dwarf/cpp/main.cpp	15
0x00001346	/home/hound/r2test/dwarf/cpp/main.cpp	15
0x00001349	-	-
0x0000134a	/home/hound/r2test/dwarf/cpp/main.cpp	15
0x0000135a	/home/hound/r2test/dwarf/cpp/main.cpp	15
0x00001379	-	-
0x0000137a	/home/hound/r2test/dwarf/cpp/main.cpp	16
0x00001386	/home/hound/r2test/dwarf/cpp/main.cpp	16
0x0000138b	/home/hound/r2test/dwarf/cpp/main.cpp	16
0x0000138d	-	-
EOF
RUN
