Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xae (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/mq_attr_t.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x11d): /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: 0x158): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 43
    <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: 0x1c7): mq_attr_t
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 39
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x1bf): mq_attr
    <41>   DW_AT_byte_size   : 32
    <42>   DW_AT_decl_file   : 2
    <43>   DW_AT_decl_line   : 24
 <2><44>: Abbrev Number: 5 (DW_TAG_member)
    <45>   DW_AT_name        : (indirect string, offset: 0x169): mq_flags
    <49>   DW_AT_type        : <0x8b>
    <4d>   DW_AT_decl_file   : 2
    <4e>   DW_AT_decl_line   : 25
    <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): mq_maxmsg
    <57>   DW_AT_type        : <0x8b>
    <5b>   DW_AT_decl_file   : 2
    <5c>   DW_AT_decl_line   : 26
    <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: 0x195): mq_msgsize
    <65>   DW_AT_type        : <0x8b>
    <69>   DW_AT_decl_file   : 2
    <6a>   DW_AT_decl_line   : 27
    <6b>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><6e>: Abbrev Number: 5 (DW_TAG_member)
    <6f>   DW_AT_name        : (indirect string, offset: 0x1a0): mq_curmsgs
    <73>   DW_AT_type        : <0x8b>
    <77>   DW_AT_decl_file   : 2
    <78>   DW_AT_decl_line   : 28
    <79>   DW_AT_data_member_location: 2 byte block: 23 c 	(DW_OP_plus_uconst: 12)
 <2><7c>: Abbrev Number: 5 (DW_TAG_member)
    <7d>   DW_AT_name        : (indirect string, offset: 0x1ab): __reserved
    <81>   DW_AT_type        : <0x9d>
    <85>   DW_AT_decl_file   : 2
    <86>   DW_AT_decl_line   : 29
    <87>   DW_AT_data_member_location: 2 byte block: 23 10 	(DW_OP_plus_uconst: 16)
 <2><8a>: Abbrev Number: 0
 <1><8b>: Abbrev Number: 3 (DW_TAG_typedef)
    <8c>   DW_AT_type        : <0x96>
    <90>   DW_AT_name        : (indirect string, offset: 0x17b): __kernel_long_t
    <94>   DW_AT_decl_file   : 1
    <95>   DW_AT_decl_line   : 23
 <1><96>: Abbrev Number: 6 (DW_TAG_base_type)
    <97>   DW_AT_name        : (indirect string, offset: 0x172): long int
    <9b>   DW_AT_encoding    : 5	(signed)
    <9c>   DW_AT_byte_size   : 4
 <1><9d>: Abbrev Number: 7 (DW_TAG_array_type)
    <9e>   DW_AT_type        : <0x8b>
 <2><a2>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <a3>   DW_AT_type        : <0xaa>
    <a7>   DW_AT_lower_bound : 0
    <a8>   DW_AT_count       : 4
 <2><a9>: Abbrev Number: 0
 <1><aa>: Abbrev Number: 9 (DW_TAG_base_type)
    <ab>   DW_AT_name        : (indirect string, offset: 0x1b6): sizetype
    <af>   DW_AT_byte_size   : 8
    <b0>   DW_AT_encoding    : 7	(unsigned)
 <1><b1>: Abbrev Number: 0

