Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xb7 (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_keyctl_kdf_params.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x12c): /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: 0x167): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 7
    <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: 0x1e1): struct_keyctl_kdf_params
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 5
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x1cf): keyctl_kdf_params
    <41>   DW_AT_byte_size   : 44
    <42>   DW_AT_decl_file   : 1
    <43>   DW_AT_decl_line   : 13
 <2><44>: Abbrev Number: 5 (DW_TAG_member)
    <45>   DW_AT_name        : (indirect string, offset: 0x178): hashname
    <49>   DW_AT_type        : <0x7d>
    <4d>   DW_AT_decl_file   : 1
    <4e>   DW_AT_decl_line   : 14
    <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: 0x186): otherinfo
    <57>   DW_AT_type        : <0x7d>
    <5b>   DW_AT_decl_file   : 1
    <5c>   DW_AT_decl_line   : 15
    <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: 0x190): otherinfolen
    <65>   DW_AT_type        : <0x89>
    <69>   DW_AT_decl_file   : 1
    <6a>   DW_AT_decl_line   : 16
    <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: 0x1be): __spare
    <73>   DW_AT_type        : <0xa6>
    <77>   DW_AT_decl_file   : 1
    <78>   DW_AT_decl_line   : 17
    <79>   DW_AT_data_member_location: 2 byte block: 23 c 	(DW_OP_plus_uconst: 12)
 <2><7c>: Abbrev Number: 0
 <1><7d>: Abbrev Number: 6 (DW_TAG_pointer_type)
    <7e>   DW_AT_type        : <0x82>
 <1><82>: Abbrev Number: 7 (DW_TAG_base_type)
    <83>   DW_AT_name        : (indirect string, offset: 0x181): char
    <87>   DW_AT_encoding    : 8	(unsigned char)
    <88>   DW_AT_byte_size   : 1
 <1><89>: Abbrev Number: 3 (DW_TAG_typedef)
    <8a>   DW_AT_type        : <0x94>
    <8e>   DW_AT_name        : (indirect string, offset: 0x1b5): uint32_t
    <92>   DW_AT_decl_file   : 2
    <93>   DW_AT_decl_line   : 65
 <1><94>: Abbrev Number: 3 (DW_TAG_typedef)
    <95>   DW_AT_type        : <0x9f>
    <99>   DW_AT_name        : (indirect string, offset: 0x1aa): __uint32_t
    <9d>   DW_AT_decl_file   : 2
    <9e>   DW_AT_decl_line   : 41
 <1><9f>: Abbrev Number: 7 (DW_TAG_base_type)
    <a0>   DW_AT_name        : (indirect string, offset: 0x19d): unsigned int
    <a4>   DW_AT_encoding    : 7	(unsigned)
    <a5>   DW_AT_byte_size   : 4
 <1><a6>: Abbrev Number: 8 (DW_TAG_array_type)
    <a7>   DW_AT_type        : <0x89>
 <2><ab>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <ac>   DW_AT_type        : <0xb3>
    <b0>   DW_AT_lower_bound : 0
    <b1>   DW_AT_count       : 8
 <2><b2>: Abbrev Number: 0
 <1><b3>: Abbrev Number: 10 (DW_TAG_base_type)
    <b4>   DW_AT_name        : (indirect string, offset: 0x1c6): sizetype
    <b8>   DW_AT_byte_size   : 8
    <b9>   DW_AT_encoding    : 7	(unsigned)
 <1><ba>: Abbrev Number: 0

