Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x12d (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_v4l2_input.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x125): /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: 0x160): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 3
    <2a>   DW_AT_decl_line   : 53
    <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: 0x214): struct_v4l2_input
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 50
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x209): v4l2_input
    <41>   DW_AT_byte_size   : 80
    <42>   DW_AT_decl_file   : 2
    <43>   DW_AT_decl_line   : 735
 <2><45>: Abbrev Number: 5 (DW_TAG_member)
    <46>   DW_AT_name        : (indirect string, offset: 0x171): index
    <4a>   DW_AT_type        : <0xcd>
    <4e>   DW_AT_decl_file   : 2
    <4f>   DW_AT_decl_line   : 736
    <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: 0x18a): name
    <59>   DW_AT_type        : <0xdf>
    <5d>   DW_AT_decl_file   : 2
    <5e>   DW_AT_decl_line   : 737
    <60>   DW_AT_data_member_location: 2 byte block: 23 4 	(DW_OP_plus_uconst: 4)
 <2><63>: Abbrev Number: 5 (DW_TAG_member)
    <64>   DW_AT_name        : (indirect string, offset: 0x1ab): type
    <68>   DW_AT_type        : <0xcd>
    <6c>   DW_AT_decl_file   : 2
    <6d>   DW_AT_decl_line   : 738
    <6f>   DW_AT_data_member_location: 2 byte block: 23 24 	(DW_OP_plus_uconst: 36)
 <2><72>: Abbrev Number: 5 (DW_TAG_member)
    <73>   DW_AT_name        : (indirect string, offset: 0x1b0): audioset
    <77>   DW_AT_type        : <0xcd>
    <7b>   DW_AT_decl_file   : 2
    <7c>   DW_AT_decl_line   : 739
    <7e>   DW_AT_data_member_location: 2 byte block: 23 28 	(DW_OP_plus_uconst: 40)
 <2><81>: Abbrev Number: 5 (DW_TAG_member)
    <82>   DW_AT_name        : (indirect string, offset: 0x1b9): tuner
    <86>   DW_AT_type        : <0xcd>
    <8a>   DW_AT_decl_file   : 2
    <8b>   DW_AT_decl_line   : 740
    <8d>   DW_AT_data_member_location: 2 byte block: 23 2c 	(DW_OP_plus_uconst: 44)
 <2><90>: Abbrev Number: 5 (DW_TAG_member)
    <91>   DW_AT_name        : (indirect string, offset: 0x1bf): std
    <95>   DW_AT_type        : <0x105>
    <99>   DW_AT_decl_file   : 2
    <9a>   DW_AT_decl_line   : 741
    <9c>   DW_AT_data_member_location: 2 byte block: 23 30 	(DW_OP_plus_uconst: 48)
 <2><9f>: Abbrev Number: 5 (DW_TAG_member)
    <a0>   DW_AT_name        : (indirect string, offset: 0x1ec): status
    <a4>   DW_AT_type        : <0xcd>
    <a8>   DW_AT_decl_file   : 2
    <a9>   DW_AT_decl_line   : 742
    <ab>   DW_AT_data_member_location: 2 byte block: 23 38 	(DW_OP_plus_uconst: 56)
 <2><ae>: Abbrev Number: 5 (DW_TAG_member)
    <af>   DW_AT_name        : (indirect string, offset: 0x1f3): capabilities
    <b3>   DW_AT_type        : <0xcd>
    <b7>   DW_AT_decl_file   : 2
    <b8>   DW_AT_decl_line   : 743
    <ba>   DW_AT_data_member_location: 2 byte block: 23 3c 	(DW_OP_plus_uconst: 60)
 <2><bd>: Abbrev Number: 5 (DW_TAG_member)
    <be>   DW_AT_name        : (indirect string, offset: 0x200): reserved
    <c2>   DW_AT_type        : <0x123>
    <c6>   DW_AT_decl_file   : 2
    <c7>   DW_AT_decl_line   : 744
    <c9>   DW_AT_data_member_location: 2 byte block: 23 40 	(DW_OP_plus_uconst: 64)
 <2><cc>: Abbrev Number: 0
 <1><cd>: Abbrev Number: 3 (DW_TAG_typedef)
    <ce>   DW_AT_type        : <0xd8>
    <d2>   DW_AT_name        : (indirect string, offset: 0x184): __u32
    <d6>   DW_AT_decl_file   : 1
    <d7>   DW_AT_decl_line   : 28
 <1><d8>: Abbrev Number: 6 (DW_TAG_base_type)
    <d9>   DW_AT_name        : (indirect string, offset: 0x177): unsigned int
    <dd>   DW_AT_encoding    : 7	(unsigned)
    <de>   DW_AT_byte_size   : 4
 <1><df>: Abbrev Number: 7 (DW_TAG_array_type)
    <e0>   DW_AT_type        : <0xec>
 <2><e4>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <e5>   DW_AT_type        : <0xfe>
    <e9>   DW_AT_lower_bound : 0
    <ea>   DW_AT_count       : 32
 <2><eb>: Abbrev Number: 0
 <1><ec>: Abbrev Number: 3 (DW_TAG_typedef)
    <ed>   DW_AT_type        : <0xf7>
    <f1>   DW_AT_name        : (indirect string, offset: 0x19d): __u8
    <f5>   DW_AT_decl_file   : 1
    <f6>   DW_AT_decl_line   : 24
 <1><f7>: Abbrev Number: 6 (DW_TAG_base_type)
    <f8>   DW_AT_name        : (indirect string, offset: 0x18f): unsigned char
    <fc>   DW_AT_encoding    : 8	(unsigned char)
    <fd>   DW_AT_byte_size   : 1
 <1><fe>: Abbrev Number: 9 (DW_TAG_base_type)
    <ff>   DW_AT_name        : (indirect string, offset: 0x1a2): sizetype
    <103>   DW_AT_byte_size   : 8
    <104>   DW_AT_encoding    : 7	(unsigned)
 <1><105>: Abbrev Number: 10 (DW_TAG_typedef)
    <106>   DW_AT_type        : <0x111>
    <10a>   DW_AT_name        : (indirect string, offset: 0x1e0): v4l2_std_id
    <10e>   DW_AT_decl_file   : 2
    <10f>   DW_AT_decl_line   : 598
 <1><111>: Abbrev Number: 3 (DW_TAG_typedef)
    <112>   DW_AT_type        : <0x11c>
    <116>   DW_AT_name        : (indirect string, offset: 0x1da): __u64
    <11a>   DW_AT_decl_file   : 1
    <11b>   DW_AT_decl_line   : 31
 <1><11c>: Abbrev Number: 6 (DW_TAG_base_type)
    <11d>   DW_AT_name        : (indirect string, offset: 0x1c3): long long unsigned int
    <121>   DW_AT_encoding    : 7	(unsigned)
    <122>   DW_AT_byte_size   : 8
 <1><123>: Abbrev Number: 7 (DW_TAG_array_type)
    <124>   DW_AT_type        : <0xcd>
 <2><128>: Abbrev Number: 8 (DW_TAG_subrange_type)
    <129>   DW_AT_type        : <0xfe>
    <12d>   DW_AT_lower_bound : 0
    <12e>   DW_AT_count       : 3
 <2><12f>: Abbrev Number: 0
 <1><130>: Abbrev Number: 0

