Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xda (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_btrfs_ioctl_send_args.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x130): /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: 0x16b): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 47
    <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: 0x211): struct_btrfs_ioctl_send_args
    <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: 0x1fb): btrfs_ioctl_send_args
    <41>   DW_AT_byte_size   : 72
    <42>   DW_AT_decl_file   : 2
    <43>   DW_AT_decl_line   : 401
 <2><45>: Abbrev Number: 5 (DW_TAG_member)
    <46>   DW_AT_name        : (indirect string, offset: 0x17c): send_fd
    <4a>   DW_AT_type        : <0xa0>
    <4e>   DW_AT_decl_file   : 2
    <4f>   DW_AT_decl_line   : 402
    <51>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><54>: Abbrev Number: 5 (DW_TAG_member)
    <55>   DW_AT_name        : (indirect string, offset: 0x198): clone_sources_count
    <59>   DW_AT_type        : <0xb2>
    <5d>   DW_AT_decl_file   : 2
    <5e>   DW_AT_decl_line   : 403
    <60>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><63>: Abbrev Number: 5 (DW_TAG_member)
    <64>   DW_AT_name        : (indirect string, offset: 0x1c9): clone_sources
    <68>   DW_AT_type        : <0xc4>
    <6c>   DW_AT_decl_file   : 2
    <6d>   DW_AT_decl_line   : 404
    <6f>   DW_AT_data_member_location: 2 byte block: 23 10 	(DW_OP_plus_uconst: 16)
 <2><72>: Abbrev Number: 5 (DW_TAG_member)
    <73>   DW_AT_name        : (indirect string, offset: 0x1d7): parent_root
    <77>   DW_AT_type        : <0xb2>
    <7b>   DW_AT_decl_file   : 2
    <7c>   DW_AT_decl_line   : 405
    <7e>   DW_AT_data_member_location: 2 byte block: 23 18 	(DW_OP_plus_uconst: 24)
 <2><81>: Abbrev Number: 5 (DW_TAG_member)
    <82>   DW_AT_name        : (indirect string, offset: 0x1e3): flags
    <86>   DW_AT_type        : <0xb2>
    <8a>   DW_AT_decl_file   : 2
    <8b>   DW_AT_decl_line   : 406
    <8d>   DW_AT_data_member_location: 2 byte block: 23 20 	(DW_OP_plus_uconst: 32)
 <2><90>: Abbrev Number: 5 (DW_TAG_member)
    <91>   DW_AT_name        : (indirect string, offset: 0x1e9): reserved
    <95>   DW_AT_type        : <0xc9>
    <99>   DW_AT_decl_file   : 2
    <9a>   DW_AT_decl_line   : 407
    <9c>   DW_AT_data_member_location: 2 byte block: 23 28 	(DW_OP_plus_uconst: 40)
 <2><9f>: Abbrev Number: 0
 <1><a0>: Abbrev Number: 3 (DW_TAG_typedef)
    <a1>   DW_AT_type        : <0xab>
    <a5>   DW_AT_name        : (indirect string, offset: 0x192): __s64
    <a9>   DW_AT_decl_file   : 1
    <aa>   DW_AT_decl_line   : 30
 <1><ab>: Abbrev Number: 6 (DW_TAG_base_type)
    <ac>   DW_AT_name        : (indirect string, offset: 0x184): long long int
    <b0>   DW_AT_encoding    : 5	(signed)
    <b1>   DW_AT_byte_size   : 8
 <1><b2>: Abbrev Number: 3 (DW_TAG_typedef)
    <b3>   DW_AT_type        : <0xbd>
    <b7>   DW_AT_name        : (indirect string, offset: 0x1c3): __u64
    <bb>   DW_AT_decl_file   : 1
    <bc>   DW_AT_decl_line   : 31
 <1><bd>: Abbrev Number: 6 (DW_TAG_base_type)
    <be>   DW_AT_name        : (indirect string, offset: 0x1ac): long long unsigned int
    <c2>   DW_AT_encoding    : 7	(unsigned)
    <c3>   DW_AT_byte_size   : 8
 <1><c4>: Abbrev Number: 7 (DW_TAG_pointer_type)
    <c5>   DW_AT_type        : <0xb2>
 <1><c9>: Abbrev Number: 8 (DW_TAG_array_type)
    <ca>   DW_AT_type        : <0xb2>
 <2><ce>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <cf>   DW_AT_type        : <0xd6>
    <d3>   DW_AT_lower_bound : 0
    <d4>   DW_AT_count       : 4
 <2><d5>: Abbrev Number: 0
 <1><d6>: Abbrev Number: 10 (DW_TAG_base_type)
    <d7>   DW_AT_name        : (indirect string, offset: 0x1f2): sizetype
    <db>   DW_AT_byte_size   : 8
    <dc>   DW_AT_encoding    : 7	(unsigned)
 <1><dd>: Abbrev Number: 0

