Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xb5 (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/kernel_dirent.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x121): /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: 0x15c): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 36
    <2b>   DW_AT_location    : 5 byte block: 3 4 0 0 0 	(DW_OP_addr: 4)
 <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
    <32>   DW_AT_type        : <0x3c>
    <36>   DW_AT_name        : (indirect string, offset: 0x1d8): kernel_dirent
    <3a>   DW_AT_decl_file   : 2
    <3b>   DW_AT_decl_line   : 56
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_byte_size   : 12
    <3e>   DW_AT_decl_file   : 2
    <3f>   DW_AT_decl_line   : 51
 <2><40>: Abbrev Number: 5 (DW_TAG_member)
    <41>   DW_AT_name        : (indirect string, offset: 0x16d): d_ino
    <45>   DW_AT_type        : <0x79>
    <49>   DW_AT_decl_file   : 2
    <4a>   DW_AT_decl_line   : 52
    <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: 0x1a5): d_off
    <53>   DW_AT_type        : <0x79>
    <57>   DW_AT_decl_file   : 2
    <58>   DW_AT_decl_line   : 53
    <59>   DW_AT_data_member_location: 2 byte block: 23 4 	(DW_OP_plus_uconst: 4)
 <2><5c>: Abbrev Number: 5 (DW_TAG_member)
    <5d>   DW_AT_name        : (indirect string, offset: 0x1ab): d_reclen
    <61>   DW_AT_type        : <0x96>
    <65>   DW_AT_decl_file   : 2
    <66>   DW_AT_decl_line   : 54
    <67>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><6a>: Abbrev Number: 5 (DW_TAG_member)
    <6b>   DW_AT_name        : (indirect string, offset: 0x1c3): d_name
    <6f>   DW_AT_type        : <0x9d>
    <73>   DW_AT_decl_file   : 2
    <74>   DW_AT_decl_line   : 55
    <75>   DW_AT_data_member_location: 2 byte block: 23 a 	(DW_OP_plus_uconst: 10)
 <2><78>: Abbrev Number: 0
 <1><79>: Abbrev Number: 3 (DW_TAG_typedef)
    <7a>   DW_AT_type        : <0x84>
    <7e>   DW_AT_name        : (indirect string, offset: 0x196): kernel_ulong_t
    <82>   DW_AT_decl_file   : 2
    <83>   DW_AT_decl_line   : 37
 <1><84>: Abbrev Number: 3 (DW_TAG_typedef)
    <85>   DW_AT_type        : <0x8f>
    <89>   DW_AT_name        : (indirect string, offset: 0x185): __kernel_ulong_t
    <8d>   DW_AT_decl_file   : 1
    <8e>   DW_AT_decl_line   : 24
 <1><8f>: Abbrev Number: 6 (DW_TAG_base_type)
    <90>   DW_AT_name        : (indirect string, offset: 0x173): long unsigned int
    <94>   DW_AT_encoding    : 7	(unsigned)
    <95>   DW_AT_byte_size   : 4
 <1><96>: Abbrev Number: 6 (DW_TAG_base_type)
    <97>   DW_AT_name        : (indirect string, offset: 0x1b4): unsigned short
    <9b>   DW_AT_encoding    : 7	(unsigned)
    <9c>   DW_AT_byte_size   : 2
 <1><9d>: Abbrev Number: 7 (DW_TAG_array_type)
    <9e>   DW_AT_type        : <0xaa>
 <2><a2>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <a3>   DW_AT_type        : <0xb1>
    <a7>   DW_AT_lower_bound : 0
    <a8>   DW_AT_count       : 1
 <2><a9>: Abbrev Number: 0
 <1><aa>: Abbrev Number: 6 (DW_TAG_base_type)
    <ab>   DW_AT_name        : (indirect string, offset: 0x1ca): char
    <af>   DW_AT_encoding    : 8	(unsigned char)
    <b0>   DW_AT_byte_size   : 1
 <1><b1>: Abbrev Number: 9 (DW_TAG_base_type)
    <b2>   DW_AT_name        : (indirect string, offset: 0x1cf): sizetype
    <b6>   DW_AT_byte_size   : 8
    <b7>   DW_AT_encoding    : 7	(unsigned)
 <1><b8>: Abbrev Number: 0

