Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x142 (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_statfs.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x121): /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: 0x15c): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 37
    <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: 0x211): struct_statfs
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 34
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x20a): statfs
    <41>   DW_AT_byte_size   : 64
    <42>   DW_AT_decl_file   : 2
    <43>   DW_AT_decl_line   : 29
 <2><44>: Abbrev Number: 5 (DW_TAG_member)
    <45>   DW_AT_name        : (indirect string, offset: 0x16d): f_type
    <49>   DW_AT_type        : <0xed>
    <4d>   DW_AT_decl_file   : 2
    <4e>   DW_AT_decl_line   : 30
    <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: 0x18d): f_bsize
    <57>   DW_AT_type        : <0xed>
    <5b>   DW_AT_decl_file   : 2
    <5c>   DW_AT_decl_line   : 31
    <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): f_blocks
    <65>   DW_AT_type        : <0xed>
    <69>   DW_AT_decl_file   : 2
    <6a>   DW_AT_decl_line   : 32
    <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: 0x19e): f_bfree
    <73>   DW_AT_type        : <0xed>
    <77>   DW_AT_decl_file   : 2
    <78>   DW_AT_decl_line   : 33
    <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: 0x1a6): f_bavail
    <81>   DW_AT_type        : <0xed>
    <85>   DW_AT_decl_file   : 2
    <86>   DW_AT_decl_line   : 34
    <87>   DW_AT_data_member_location: 2 byte block: 23 10 	(DW_OP_plus_uconst: 16)
 <2><8a>: Abbrev Number: 5 (DW_TAG_member)
    <8b>   DW_AT_name        : (indirect string, offset: 0x1af): f_files
    <8f>   DW_AT_type        : <0xed>
    <93>   DW_AT_decl_file   : 2
    <94>   DW_AT_decl_line   : 35
    <95>   DW_AT_data_member_location: 2 byte block: 23 14 	(DW_OP_plus_uconst: 20)
 <2><98>: Abbrev Number: 5 (DW_TAG_member)
    <99>   DW_AT_name        : (indirect string, offset: 0x1b7): f_ffree
    <9d>   DW_AT_type        : <0xed>
    <a1>   DW_AT_decl_file   : 2
    <a2>   DW_AT_decl_line   : 36
    <a3>   DW_AT_data_member_location: 2 byte block: 23 18 	(DW_OP_plus_uconst: 24)
 <2><a6>: Abbrev Number: 5 (DW_TAG_member)
    <a7>   DW_AT_name        : (indirect string, offset: 0x1bf): f_fsid
    <ab>   DW_AT_type        : <0xff>
    <af>   DW_AT_decl_file   : 2
    <b0>   DW_AT_decl_line   : 37
    <b1>   DW_AT_data_member_location: 2 byte block: 23 1c 	(DW_OP_plus_uconst: 28)
 <2><b4>: Abbrev Number: 5 (DW_TAG_member)
    <b5>   DW_AT_name        : (indirect string, offset: 0x1e7): f_namelen
    <b9>   DW_AT_type        : <0xed>
    <bd>   DW_AT_decl_file   : 2
    <be>   DW_AT_decl_line   : 38
    <bf>   DW_AT_data_member_location: 2 byte block: 23 24 	(DW_OP_plus_uconst: 36)
 <2><c2>: Abbrev Number: 5 (DW_TAG_member)
    <c3>   DW_AT_name        : (indirect string, offset: 0x1f1): f_frsize
    <c7>   DW_AT_type        : <0xed>
    <cb>   DW_AT_decl_file   : 2
    <cc>   DW_AT_decl_line   : 39
    <cd>   DW_AT_data_member_location: 2 byte block: 23 28 	(DW_OP_plus_uconst: 40)
 <2><d0>: Abbrev Number: 5 (DW_TAG_member)
    <d1>   DW_AT_name        : (indirect string, offset: 0x1fa): f_flags
    <d5>   DW_AT_type        : <0xed>
    <d9>   DW_AT_decl_file   : 2
    <da>   DW_AT_decl_line   : 40
    <db>   DW_AT_data_member_location: 2 byte block: 23 2c 	(DW_OP_plus_uconst: 44)
 <2><de>: Abbrev Number: 5 (DW_TAG_member)
    <df>   DW_AT_name        : (indirect string, offset: 0x202): f_spare
    <e3>   DW_AT_type        : <0x138>
    <e7>   DW_AT_decl_file   : 2
    <e8>   DW_AT_decl_line   : 41
    <e9>   DW_AT_data_member_location: 2 byte block: 23 30 	(DW_OP_plus_uconst: 48)
 <2><ec>: Abbrev Number: 0
 <1><ed>: Abbrev Number: 3 (DW_TAG_typedef)
    <ee>   DW_AT_type        : <0xf8>
    <f2>   DW_AT_name        : (indirect string, offset: 0x17d): __kernel_long_t
    <f6>   DW_AT_decl_file   : 1
    <f7>   DW_AT_decl_line   : 23
 <1><f8>: Abbrev Number: 6 (DW_TAG_base_type)
    <f9>   DW_AT_name        : (indirect string, offset: 0x174): long int
    <fd>   DW_AT_encoding    : 5	(signed)
    <fe>   DW_AT_byte_size   : 4
 <1><ff>: Abbrev Number: 3 (DW_TAG_typedef)
    <100>   DW_AT_type        : <0x10a>
    <104>   DW_AT_name        : (indirect string, offset: 0x1d7): __kernel_fsid_t
    <108>   DW_AT_decl_file   : 1
    <109>   DW_AT_decl_line   : 73
 <1><10a>: Abbrev Number: 7 (DW_TAG_structure_type)
    <10b>   DW_AT_byte_size   : 8
    <10c>   DW_AT_decl_file   : 1
    <10d>   DW_AT_decl_line   : 71
 <2><10e>: Abbrev Number: 5 (DW_TAG_member)
    <10f>   DW_AT_name        : (indirect string, offset: 0x1c6): val
    <113>   DW_AT_type        : <0x11d>
    <117>   DW_AT_decl_file   : 1
    <118>   DW_AT_decl_line   : 72
    <119>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><11c>: Abbrev Number: 0
 <1><11d>: Abbrev Number: 8 (DW_TAG_array_type)
    <11e>   DW_AT_type        : <0x12a>
 <2><122>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <123>   DW_AT_type        : <0x131>
    <127>   DW_AT_lower_bound : 0
    <128>   DW_AT_count       : 2
 <2><129>: Abbrev Number: 0
 <1><12a>: Abbrev Number: 6 (DW_TAG_base_type)
    <12b>   DW_AT_name        : (indirect string, offset: 0x1ca): int
    <12f>   DW_AT_encoding    : 5	(signed)
    <130>   DW_AT_byte_size   : 4
 <1><131>: Abbrev Number: 10 (DW_TAG_base_type)
    <132>   DW_AT_name        : (indirect string, offset: 0x1ce): sizetype
    <136>   DW_AT_byte_size   : 8
    <137>   DW_AT_encoding    : 7	(unsigned)
 <1><138>: Abbrev Number: 8 (DW_TAG_array_type)
    <139>   DW_AT_type        : <0xed>
 <2><13d>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <13e>   DW_AT_type        : <0x131>
    <142>   DW_AT_lower_bound : 0
    <143>   DW_AT_count       : 4
 <2><144>: Abbrev Number: 0
 <1><145>: Abbrev Number: 0

