Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x8a (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_mtd_oob_buf.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x126): /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: 0x161): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 40
    <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: 0x1b0): struct_mtd_oob_buf
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 36
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x1a4): mtd_oob_buf
    <41>   DW_AT_byte_size   : 12
    <42>   DW_AT_decl_file   : 2
    <43>   DW_AT_decl_line   : 30
 <2><44>: Abbrev Number: 5 (DW_TAG_member)
    <45>   DW_AT_name        : (indirect string, offset: 0x172): start
    <49>   DW_AT_type        : <0x6f>
    <4d>   DW_AT_decl_file   : 2
    <4e>   DW_AT_decl_line   : 31
    <4f>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><52>: Abbrev Number: 5 (DW_TAG_member)
    <53>   DW_AT_name        : (indirect string, offset: 0x18b): length
    <57>   DW_AT_type        : <0x6f>
    <5b>   DW_AT_decl_file   : 2
    <5c>   DW_AT_decl_line   : 32
    <5d>   DW_AT_data_member_location: 2 byte block: 23 4 	(DW_OP_plus_uconst: 4)
 <2><60>: Abbrev Number: 5 (DW_TAG_member)
    <61>   DW_AT_name        : (indirect string, offset: 0x192): ptr
    <65>   DW_AT_type        : <0x81>
    <69>   DW_AT_decl_file   : 2
    <6a>   DW_AT_decl_line   : 33
    <6b>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><6e>: Abbrev Number: 0
 <1><6f>: Abbrev Number: 3 (DW_TAG_typedef)
    <70>   DW_AT_type        : <0x7a>
    <74>   DW_AT_name        : (indirect string, offset: 0x185): __u32
    <78>   DW_AT_decl_file   : 1
    <79>   DW_AT_decl_line   : 28
 <1><7a>: Abbrev Number: 6 (DW_TAG_base_type)
    <7b>   DW_AT_name        : (indirect string, offset: 0x178): unsigned int
    <7f>   DW_AT_encoding    : 7	(unsigned)
    <80>   DW_AT_byte_size   : 4
 <1><81>: Abbrev Number: 7 (DW_TAG_pointer_type)
    <82>   DW_AT_type        : <0x86>
 <1><86>: Abbrev Number: 6 (DW_TAG_base_type)
    <87>   DW_AT_name        : (indirect string, offset: 0x196): unsigned char
    <8b>   DW_AT_encoding    : 8	(unsigned char)
    <8c>   DW_AT_byte_size   : 1
 <1><8d>: Abbrev Number: 0

