Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xc3 (32-bit)
   Version:       2
   Abbrev Offset: 0x0
   Pointer Size:  4
 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <c>   DW_AT_producer    : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
    <10>   DW_AT_language    : 12	(ANSI C99)
    <12>   DW_AT_name        : (indirect string, offset: 0x107): mpers-m32/struct_blkpg_partition.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x12a): /usr/local/google/ndkports/.out/strace/package/strace-4.23
    <1e>   DW_AT_GNU_pubnames: 1
 <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
    <20>   DW_AT_name        : (indirect string, offset: 0x165): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 2
    <2a>   DW_AT_decl_line   : 65
    <2b>   DW_AT_location    : 5 byte block: 3 8 0 0 0 	(DW_OP_addr: 8)
 <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
    <32>   DW_AT_type        : <0x3c>
    <36>   DW_AT_name        : (indirect string, offset: 0x1c9): struct_blkpg_partition
    <3a>   DW_AT_decl_file   : 2
    <3b>   DW_AT_decl_line   : 52
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_byte_size   : 152
    <3e>   DW_AT_decl_file   : 2
    <3f>   DW_AT_decl_line   : 45
 <2><40>: Abbrev Number: 5 (DW_TAG_member)
    <41>   DW_AT_name        : (indirect string, offset: 0x176): start
    <45>   DW_AT_type        : <0x87>
    <49>   DW_AT_decl_file   : 2
    <4a>   DW_AT_decl_line   : 46
    <4b>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><4e>: Abbrev Number: 5 (DW_TAG_member)
    <4f>   DW_AT_name        : (indirect string, offset: 0x19c): length
    <53>   DW_AT_type        : <0x87>
    <57>   DW_AT_decl_file   : 2
    <58>   DW_AT_decl_line   : 47
    <59>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><5c>: Abbrev Number: 5 (DW_TAG_member)
    <5d>   DW_AT_name        : (indirect string, offset: 0x1a3): pno
    <61>   DW_AT_type        : <0xa4>
    <65>   DW_AT_decl_file   : 2
    <66>   DW_AT_decl_line   : 48
    <67>   DW_AT_data_member_location: 2 byte block: 23 10 	(DW_OP_plus_uconst: 16)
 <2><6a>: Abbrev Number: 5 (DW_TAG_member)
    <6b>   DW_AT_name        : (indirect string, offset: 0x1ab): devname
    <6f>   DW_AT_type        : <0xab>
    <73>   DW_AT_decl_file   : 2
    <74>   DW_AT_decl_line   : 49
    <75>   DW_AT_data_member_location: 2 byte block: 23 14 	(DW_OP_plus_uconst: 20)
 <2><78>: Abbrev Number: 5 (DW_TAG_member)
    <79>   DW_AT_name        : (indirect string, offset: 0x1c1): volname
    <7d>   DW_AT_type        : <0xab>
    <81>   DW_AT_decl_file   : 2
    <82>   DW_AT_decl_line   : 51
    <83>   DW_AT_data_member_location: 2 byte block: 23 54 	(DW_OP_plus_uconst: 84)
 <2><86>: Abbrev Number: 0
 <1><87>: Abbrev Number: 3 (DW_TAG_typedef)
    <88>   DW_AT_type        : <0x92>
    <8c>   DW_AT_name        : (indirect string, offset: 0x194): int64_t
    <90>   DW_AT_decl_file   : 1
    <91>   DW_AT_decl_line   : 67
 <1><92>: Abbrev Number: 3 (DW_TAG_typedef)
    <93>   DW_AT_type        : <0x9d>
    <97>   DW_AT_name        : (indirect string, offset: 0x18a): __int64_t
    <9b>   DW_AT_decl_file   : 1
    <9c>   DW_AT_decl_line   : 46
 <1><9d>: Abbrev Number: 6 (DW_TAG_base_type)
    <9e>   DW_AT_name        : (indirect string, offset: 0x17c): long long int
    <a2>   DW_AT_encoding    : 5	(signed)
    <a3>   DW_AT_byte_size   : 8
 <1><a4>: Abbrev Number: 6 (DW_TAG_base_type)
    <a5>   DW_AT_name        : (indirect string, offset: 0x1a7): int
    <a9>   DW_AT_encoding    : 5	(signed)
    <aa>   DW_AT_byte_size   : 4
 <1><ab>: Abbrev Number: 7 (DW_TAG_array_type)
    <ac>   DW_AT_type        : <0xb8>
 <2><b0>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <b1>   DW_AT_type        : <0xbf>
    <b5>   DW_AT_lower_bound : 0
    <b6>   DW_AT_count       : 64
 <2><b7>: Abbrev Number: 0
 <1><b8>: Abbrev Number: 6 (DW_TAG_base_type)
    <b9>   DW_AT_name        : (indirect string, offset: 0x1b3): char
    <bd>   DW_AT_encoding    : 8	(unsigned char)
    <be>   DW_AT_byte_size   : 1
 <1><bf>: Abbrev Number: 9 (DW_TAG_base_type)
    <c0>   DW_AT_name        : (indirect string, offset: 0x1b8): sizetype
    <c4>   DW_AT_byte_size   : 8
    <c5>   DW_AT_encoding    : 7	(unsigned)
 <1><c6>: Abbrev Number: 0

