Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x116 (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_blk_user_trace_setup.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x12f): /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: 0x16a): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 1
    <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: 0x241): struct_blk_user_trace_setup
    <3a>   DW_AT_decl_file   : 1
    <3b>   DW_AT_decl_line   : 63
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x22c): blk_user_trace_setup
    <41>   DW_AT_byte_size   : 72
    <42>   DW_AT_decl_file   : 1
    <43>   DW_AT_decl_line   : 55
 <2><44>: Abbrev Number: 5 (DW_TAG_member)
    <45>   DW_AT_name        : (indirect string, offset: 0x17b): name
    <49>   DW_AT_type        : <0xa7>
    <4d>   DW_AT_decl_file   : 1
    <4e>   DW_AT_decl_line   : 56
    <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: 0x18e): act_mask
    <57>   DW_AT_type        : <0xc2>
    <5b>   DW_AT_decl_file   : 1
    <5c>   DW_AT_decl_line   : 57
    <5d>   DW_AT_data_member_location: 2 byte block: 23 20 	(DW_OP_plus_uconst: 32)
 <2><60>: Abbrev Number: 5 (DW_TAG_member)
    <61>   DW_AT_name        : (indirect string, offset: 0x1ba): buf_size
    <65>   DW_AT_type        : <0xdf>
    <69>   DW_AT_decl_file   : 1
    <6a>   DW_AT_decl_line   : 58
    <6b>   DW_AT_data_member_location: 2 byte block: 23 24 	(DW_OP_plus_uconst: 36)
 <2><6e>: Abbrev Number: 5 (DW_TAG_member)
    <6f>   DW_AT_name        : (indirect string, offset: 0x1e4): buf_nr
    <73>   DW_AT_type        : <0xdf>
    <77>   DW_AT_decl_file   : 1
    <78>   DW_AT_decl_line   : 59
    <79>   DW_AT_data_member_location: 2 byte block: 23 28 	(DW_OP_plus_uconst: 40)
 <2><7c>: Abbrev Number: 5 (DW_TAG_member)
    <7d>   DW_AT_name        : (indirect string, offset: 0x1eb): start_lba
    <81>   DW_AT_type        : <0xfc>
    <85>   DW_AT_decl_file   : 1
    <86>   DW_AT_decl_line   : 60
    <87>   DW_AT_data_member_location: 2 byte block: 23 30 	(DW_OP_plus_uconst: 48)
 <2><8a>: Abbrev Number: 5 (DW_TAG_member)
    <8b>   DW_AT_name        : (indirect string, offset: 0x220): end_lba
    <8f>   DW_AT_type        : <0xfc>
    <93>   DW_AT_decl_file   : 1
    <94>   DW_AT_decl_line   : 61
    <95>   DW_AT_data_member_location: 2 byte block: 23 38 	(DW_OP_plus_uconst: 56)
 <2><98>: Abbrev Number: 5 (DW_TAG_member)
    <99>   DW_AT_name        : (indirect string, offset: 0x228): pid
    <9d>   DW_AT_type        : <0xdf>
    <a1>   DW_AT_decl_file   : 1
    <a2>   DW_AT_decl_line   : 62
    <a3>   DW_AT_data_member_location: 2 byte block: 23 40 	(DW_OP_plus_uconst: 64)
 <2><a6>: Abbrev Number: 0
 <1><a7>: Abbrev Number: 6 (DW_TAG_array_type)
    <a8>   DW_AT_type        : <0xb4>
 <2><ac>: Abbrev Number: 7 (DW_TAG_subrange_type)
    <ad>   DW_AT_type        : <0xbb>
    <b1>   DW_AT_lower_bound : 0
    <b2>   DW_AT_count       : 32
 <2><b3>: Abbrev Number: 0
 <1><b4>: Abbrev Number: 8 (DW_TAG_base_type)
    <b5>   DW_AT_name        : (indirect string, offset: 0x180): char
    <b9>   DW_AT_encoding    : 8	(unsigned char)
    <ba>   DW_AT_byte_size   : 1
 <1><bb>: Abbrev Number: 9 (DW_TAG_base_type)
    <bc>   DW_AT_name        : (indirect string, offset: 0x185): sizetype
    <c0>   DW_AT_byte_size   : 8
    <c1>   DW_AT_encoding    : 7	(unsigned)
 <1><c2>: Abbrev Number: 3 (DW_TAG_typedef)
    <c3>   DW_AT_type        : <0xcd>
    <c7>   DW_AT_name        : (indirect string, offset: 0x1b1): uint16_t
    <cb>   DW_AT_decl_file   : 2
    <cc>   DW_AT_decl_line   : 62
 <1><cd>: Abbrev Number: 3 (DW_TAG_typedef)
    <ce>   DW_AT_type        : <0xd8>
    <d2>   DW_AT_name        : (indirect string, offset: 0x1a6): __uint16_t
    <d6>   DW_AT_decl_file   : 2
    <d7>   DW_AT_decl_line   : 39
 <1><d8>: Abbrev Number: 8 (DW_TAG_base_type)
    <d9>   DW_AT_name        : (indirect string, offset: 0x197): unsigned short
    <dd>   DW_AT_encoding    : 7	(unsigned)
    <de>   DW_AT_byte_size   : 2
 <1><df>: Abbrev Number: 3 (DW_TAG_typedef)
    <e0>   DW_AT_type        : <0xea>
    <e4>   DW_AT_name        : (indirect string, offset: 0x1db): uint32_t
    <e8>   DW_AT_decl_file   : 2
    <e9>   DW_AT_decl_line   : 65
 <1><ea>: Abbrev Number: 3 (DW_TAG_typedef)
    <eb>   DW_AT_type        : <0xf5>
    <ef>   DW_AT_name        : (indirect string, offset: 0x1d0): __uint32_t
    <f3>   DW_AT_decl_file   : 2
    <f4>   DW_AT_decl_line   : 41
 <1><f5>: Abbrev Number: 8 (DW_TAG_base_type)
    <f6>   DW_AT_name        : (indirect string, offset: 0x1c3): unsigned int
    <fa>   DW_AT_encoding    : 7	(unsigned)
    <fb>   DW_AT_byte_size   : 4
 <1><fc>: Abbrev Number: 3 (DW_TAG_typedef)
    <fd>   DW_AT_type        : <0x107>
    <101>   DW_AT_name        : (indirect string, offset: 0x217): uint64_t
    <105>   DW_AT_decl_file   : 2
    <106>   DW_AT_decl_line   : 68
 <1><107>: Abbrev Number: 3 (DW_TAG_typedef)
    <108>   DW_AT_type        : <0x112>
    <10c>   DW_AT_name        : (indirect string, offset: 0x20c): __uint64_t
    <110>   DW_AT_decl_file   : 2
    <111>   DW_AT_decl_line   : 47
 <1><112>: Abbrev Number: 8 (DW_TAG_base_type)
    <113>   DW_AT_name        : (indirect string, offset: 0x1f5): long long unsigned int
    <117>   DW_AT_encoding    : 7	(unsigned)
    <118>   DW_AT_byte_size   : 8
 <1><119>: Abbrev Number: 0

