Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x120 (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_received_subvol_args.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x13b): /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: 0x176): 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: 0x236): struct_btrfs_ioctl_received_subvol_args
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 41
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x215): btrfs_ioctl_received_subvol_args
    <41>   DW_AT_byte_size   : 200
    <42>   DW_AT_decl_file   : 1
    <43>   DW_AT_decl_line   : 388
 <2><45>: Abbrev Number: 5 (DW_TAG_member)
    <46>   DW_AT_name        : (indirect string, offset: 0x187): uuid
    <4a>   DW_AT_type        : <0xaf>
    <4e>   DW_AT_decl_file   : 1
    <4f>   DW_AT_decl_line   : 389
    <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: 0x19a): stransid
    <59>   DW_AT_type        : <0xca>
    <5d>   DW_AT_decl_file   : 1
    <5e>   DW_AT_decl_line   : 390
    <60>   DW_AT_data_member_location: 2 byte block: 23 10 	(DW_OP_plus_uconst: 16)
 <2><63>: Abbrev Number: 5 (DW_TAG_member)
    <64>   DW_AT_name        : (indirect string, offset: 0x1c0): rtransid
    <68>   DW_AT_type        : <0xca>
    <6c>   DW_AT_decl_file   : 1
    <6d>   DW_AT_decl_line   : 391
    <6f>   DW_AT_data_member_location: 2 byte block: 23 18 	(DW_OP_plus_uconst: 24)
 <2><72>: Abbrev Number: 5 (DW_TAG_member)
    <73>   DW_AT_name        : (indirect string, offset: 0x1c9): stime
    <77>   DW_AT_type        : <0xdc>
    <7b>   DW_AT_decl_file   : 1
    <7c>   DW_AT_decl_line   : 392
    <7e>   DW_AT_data_member_location: 2 byte block: 23 20 	(DW_OP_plus_uconst: 32)
 <2><81>: Abbrev Number: 5 (DW_TAG_member)
    <82>   DW_AT_name        : (indirect string, offset: 0x200): rtime
    <86>   DW_AT_type        : <0xdc>
    <8a>   DW_AT_decl_file   : 1
    <8b>   DW_AT_decl_line   : 393
    <8d>   DW_AT_data_member_location: 2 byte block: 23 30 	(DW_OP_plus_uconst: 48)
 <2><90>: Abbrev Number: 5 (DW_TAG_member)
    <91>   DW_AT_name        : (indirect string, offset: 0x206): flags
    <95>   DW_AT_type        : <0xca>
    <99>   DW_AT_decl_file   : 1
    <9a>   DW_AT_decl_line   : 394
    <9c>   DW_AT_data_member_location: 2 byte block: 23 40 	(DW_OP_plus_uconst: 64)
 <2><9f>: Abbrev Number: 5 (DW_TAG_member)
    <a0>   DW_AT_name        : (indirect string, offset: 0x20c): reserved
    <a4>   DW_AT_type        : <0x116>
    <a8>   DW_AT_decl_file   : 1
    <a9>   DW_AT_decl_line   : 395
    <ab>   DW_AT_data_member_location: 2 byte block: 23 48 	(DW_OP_plus_uconst: 72)
 <2><ae>: Abbrev Number: 0
 <1><af>: Abbrev Number: 6 (DW_TAG_array_type)
    <b0>   DW_AT_type        : <0xbc>
 <2><b4>: Abbrev Number: 7 (DW_TAG_subrange_type)
    <b5>   DW_AT_type        : <0xc3>
    <b9>   DW_AT_lower_bound : 0
    <ba>   DW_AT_count       : 16
 <2><bb>: Abbrev Number: 0
 <1><bc>: Abbrev Number: 8 (DW_TAG_base_type)
    <bd>   DW_AT_name        : (indirect string, offset: 0x18c): char
    <c1>   DW_AT_encoding    : 8	(unsigned char)
    <c2>   DW_AT_byte_size   : 1
 <1><c3>: Abbrev Number: 9 (DW_TAG_base_type)
    <c4>   DW_AT_name        : (indirect string, offset: 0x191): sizetype
    <c8>   DW_AT_byte_size   : 8
    <c9>   DW_AT_encoding    : 7	(unsigned)
 <1><ca>: Abbrev Number: 3 (DW_TAG_typedef)
    <cb>   DW_AT_type        : <0xd5>
    <cf>   DW_AT_name        : (indirect string, offset: 0x1ba): __u64
    <d3>   DW_AT_decl_file   : 2
    <d4>   DW_AT_decl_line   : 31
 <1><d5>: Abbrev Number: 8 (DW_TAG_base_type)
    <d6>   DW_AT_name        : (indirect string, offset: 0x1a3): long long unsigned int
    <da>   DW_AT_encoding    : 7	(unsigned)
    <db>   DW_AT_byte_size   : 8
 <1><dc>: Abbrev Number: 4 (DW_TAG_structure_type)
    <dd>   DW_AT_name        : (indirect string, offset: 0x1eb): btrfs_ioctl_timespec
    <e1>   DW_AT_byte_size   : 16
    <e2>   DW_AT_decl_file   : 1
    <e3>   DW_AT_decl_line   : 384
 <2><e5>: Abbrev Number: 5 (DW_TAG_member)
    <e6>   DW_AT_name        : (indirect string, offset: 0x1cf): sec
    <ea>   DW_AT_type        : <0xca>
    <ee>   DW_AT_decl_file   : 1
    <ef>   DW_AT_decl_line   : 385
    <f1>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><f4>: Abbrev Number: 5 (DW_TAG_member)
    <f5>   DW_AT_name        : (indirect string, offset: 0x1d3): nsec
    <f9>   DW_AT_type        : <0x104>
    <fd>   DW_AT_decl_file   : 1
    <fe>   DW_AT_decl_line   : 386
    <100>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><103>: Abbrev Number: 0
 <1><104>: Abbrev Number: 3 (DW_TAG_typedef)
    <105>   DW_AT_type        : <0x10f>
    <109>   DW_AT_name        : (indirect string, offset: 0x1e5): __u32
    <10d>   DW_AT_decl_file   : 2
    <10e>   DW_AT_decl_line   : 28
 <1><10f>: Abbrev Number: 8 (DW_TAG_base_type)
    <110>   DW_AT_name        : (indirect string, offset: 0x1d8): unsigned int
    <114>   DW_AT_encoding    : 7	(unsigned)
    <115>   DW_AT_byte_size   : 4
 <1><116>: Abbrev Number: 6 (DW_TAG_array_type)
    <117>   DW_AT_type        : <0xca>
 <2><11b>: Abbrev Number: 7 (DW_TAG_subrange_type)
    <11c>   DW_AT_type        : <0xc3>
    <120>   DW_AT_lower_bound : 0
    <121>   DW_AT_count       : 16
 <2><122>: Abbrev Number: 0
 <1><123>: Abbrev Number: 0

