Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x155 (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_loop_info.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x124): /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: 0x15f): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 36
    <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: 0x253): struct_loop_info
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 33
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x249): loop_info
    <41>   DW_AT_byte_size   : 140
    <42>   DW_AT_decl_file   : 1
    <43>   DW_AT_decl_line   : 31
 <2><44>: Abbrev Number: 5 (DW_TAG_member)
    <45>   DW_AT_name        : (indirect string, offset: 0x170): lo_number
    <49>   DW_AT_type        : <0xef>
    <4d>   DW_AT_decl_file   : 1
    <4e>   DW_AT_decl_line   : 32
    <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: 0x17e): lo_device
    <57>   DW_AT_type        : <0xf6>
    <5b>   DW_AT_decl_file   : 1
    <5c>   DW_AT_decl_line   : 33
    <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: 0x1a8): lo_inode
    <65>   DW_AT_type        : <0x108>
    <69>   DW_AT_decl_file   : 1
    <6a>   DW_AT_decl_line   : 34
    <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: 0x1c3): lo_rdevice
    <73>   DW_AT_type        : <0xf6>
    <77>   DW_AT_decl_file   : 1
    <78>   DW_AT_decl_line   : 35
    <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: 0x1ce): lo_offset
    <81>   DW_AT_type        : <0xef>
    <85>   DW_AT_decl_file   : 1
    <86>   DW_AT_decl_line   : 36
    <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: 0x1d8): lo_encrypt_type
    <8f>   DW_AT_type        : <0xef>
    <93>   DW_AT_decl_file   : 1
    <94>   DW_AT_decl_line   : 37
    <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: 0x1e8): lo_encrypt_key_size
    <9d>   DW_AT_type        : <0xef>
    <a1>   DW_AT_decl_file   : 1
    <a2>   DW_AT_decl_line   : 38
    <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: 0x1fc): lo_flags
    <ab>   DW_AT_type        : <0xef>
    <af>   DW_AT_decl_file   : 1
    <b0>   DW_AT_decl_line   : 39
    <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: 0x205): lo_name
    <b9>   DW_AT_type        : <0x10f>
    <bd>   DW_AT_decl_file   : 1
    <be>   DW_AT_decl_line   : 40
    <bf>   DW_AT_data_member_location: 2 byte block: 23 20 	(DW_OP_plus_uconst: 32)
 <2><c2>: Abbrev Number: 5 (DW_TAG_member)
    <c3>   DW_AT_name        : (indirect string, offset: 0x21b): lo_encrypt_key
    <c7>   DW_AT_type        : <0x12a>
    <cb>   DW_AT_decl_file   : 1
    <cc>   DW_AT_decl_line   : 41
    <cd>   DW_AT_data_member_location: 2 byte block: 23 60 	(DW_OP_plus_uconst: 96)
 <2><d0>: Abbrev Number: 5 (DW_TAG_member)
    <d1>   DW_AT_name        : (indirect string, offset: 0x238): lo_init
    <d5>   DW_AT_type        : <0x13e>
    <d9>   DW_AT_decl_file   : 1
    <da>   DW_AT_decl_line   : 42
    <db>   DW_AT_data_member_location: 3 byte block: 23 80 1 	(DW_OP_plus_uconst: 128)
 <2><df>: Abbrev Number: 5 (DW_TAG_member)
    <e0>   DW_AT_name        : (indirect string, offset: 0x240): reserved
    <e4>   DW_AT_type        : <0x14b>
    <e8>   DW_AT_decl_file   : 1
    <e9>   DW_AT_decl_line   : 43
    <ea>   DW_AT_data_member_location: 3 byte block: 23 88 1 	(DW_OP_plus_uconst: 136)
 <2><ee>: Abbrev Number: 0
 <1><ef>: Abbrev Number: 6 (DW_TAG_base_type)
    <f0>   DW_AT_name        : (indirect string, offset: 0x17a): int
    <f4>   DW_AT_encoding    : 5	(signed)
    <f5>   DW_AT_byte_size   : 4
 <1><f6>: Abbrev Number: 3 (DW_TAG_typedef)
    <f7>   DW_AT_type        : <0x101>
    <fb>   DW_AT_name        : (indirect string, offset: 0x195): __kernel_old_dev_t
    <ff>   DW_AT_decl_file   : 2
    <100>   DW_AT_decl_line   : 57
 <1><101>: Abbrev Number: 6 (DW_TAG_base_type)
    <102>   DW_AT_name        : (indirect string, offset: 0x188): unsigned int
    <106>   DW_AT_encoding    : 7	(unsigned)
    <107>   DW_AT_byte_size   : 4
 <1><108>: Abbrev Number: 6 (DW_TAG_base_type)
    <109>   DW_AT_name        : (indirect string, offset: 0x1b1): long unsigned int
    <10d>   DW_AT_encoding    : 7	(unsigned)
    <10e>   DW_AT_byte_size   : 4
 <1><10f>: Abbrev Number: 7 (DW_TAG_array_type)
    <110>   DW_AT_type        : <0x11c>
 <2><114>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <115>   DW_AT_type        : <0x123>
    <119>   DW_AT_lower_bound : 0
    <11a>   DW_AT_count       : 64
 <2><11b>: Abbrev Number: 0
 <1><11c>: Abbrev Number: 6 (DW_TAG_base_type)
    <11d>   DW_AT_name        : (indirect string, offset: 0x20d): char
    <121>   DW_AT_encoding    : 8	(unsigned char)
    <122>   DW_AT_byte_size   : 1
 <1><123>: Abbrev Number: 9 (DW_TAG_base_type)
    <124>   DW_AT_name        : (indirect string, offset: 0x212): sizetype
    <128>   DW_AT_byte_size   : 8
    <129>   DW_AT_encoding    : 7	(unsigned)
 <1><12a>: Abbrev Number: 7 (DW_TAG_array_type)
    <12b>   DW_AT_type        : <0x137>
 <2><12f>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <130>   DW_AT_type        : <0x123>
    <134>   DW_AT_lower_bound : 0
    <135>   DW_AT_count       : 32
 <2><136>: Abbrev Number: 0
 <1><137>: Abbrev Number: 6 (DW_TAG_base_type)
    <138>   DW_AT_name        : (indirect string, offset: 0x22a): unsigned char
    <13c>   DW_AT_encoding    : 8	(unsigned char)
    <13d>   DW_AT_byte_size   : 1
 <1><13e>: Abbrev Number: 7 (DW_TAG_array_type)
    <13f>   DW_AT_type        : <0x108>
 <2><143>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <144>   DW_AT_type        : <0x123>
    <148>   DW_AT_lower_bound : 0
    <149>   DW_AT_count       : 2
 <2><14a>: Abbrev Number: 0
 <1><14b>: Abbrev Number: 7 (DW_TAG_array_type)
    <14c>   DW_AT_type        : <0x11c>
 <2><150>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <151>   DW_AT_type        : <0x123>
    <155>   DW_AT_lower_bound : 0
    <156>   DW_AT_count       : 4
 <2><157>: Abbrev Number: 0
 <1><158>: Abbrev Number: 0

