Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x125 (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_standard.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x128): /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: 0x163): 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: 0x229): struct_v4l2_standard
    <3a>   DW_AT_decl_file   : 3
    <3b>   DW_AT_decl_line   : 51
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_name        : (indirect string, offset: 0x21b): v4l2_standard
    <41>   DW_AT_byte_size   : 72
    <42>   DW_AT_decl_file   : 2
    <43>   DW_AT_decl_line   : 645
 <2><45>: Abbrev Number: 5 (DW_TAG_member)
    <46>   DW_AT_name        : (indirect string, offset: 0x174): index
    <4a>   DW_AT_type        : <0xa0>
    <4e>   DW_AT_decl_file   : 2
    <4f>   DW_AT_decl_line   : 646
    <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: 0x18d): id
    <59>   DW_AT_type        : <0xb2>
    <5d>   DW_AT_decl_file   : 2
    <5e>   DW_AT_decl_line   : 647
    <60>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><63>: Abbrev Number: 5 (DW_TAG_member)
    <64>   DW_AT_name        : (indirect string, offset: 0x1b9): name
    <68>   DW_AT_type        : <0xd0>
    <6c>   DW_AT_decl_file   : 2
    <6d>   DW_AT_decl_line   : 648
    <6f>   DW_AT_data_member_location: 2 byte block: 23 10 	(DW_OP_plus_uconst: 16)
 <2><72>: Abbrev Number: 5 (DW_TAG_member)
    <73>   DW_AT_name        : (indirect string, offset: 0x1da): frameperiod
    <77>   DW_AT_type        : <0xf6>
    <7b>   DW_AT_decl_file   : 2
    <7c>   DW_AT_decl_line   : 649
    <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: 0x207): framelines
    <86>   DW_AT_type        : <0xa0>
    <8a>   DW_AT_decl_file   : 2
    <8b>   DW_AT_decl_line   : 650
    <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: 0x212): reserved
    <95>   DW_AT_type        : <0x11b>
    <99>   DW_AT_decl_file   : 2
    <9a>   DW_AT_decl_line   : 651
    <9c>   DW_AT_data_member_location: 2 byte block: 23 34 	(DW_OP_plus_uconst: 52)
 <2><9f>: Abbrev Number: 0
 <1><a0>: Abbrev Number: 3 (DW_TAG_typedef)
    <a1>   DW_AT_type        : <0xab>
    <a5>   DW_AT_name        : (indirect string, offset: 0x187): __u32
    <a9>   DW_AT_decl_file   : 1
    <aa>   DW_AT_decl_line   : 28
 <1><ab>: Abbrev Number: 6 (DW_TAG_base_type)
    <ac>   DW_AT_name        : (indirect string, offset: 0x17a): unsigned int
    <b0>   DW_AT_encoding    : 7	(unsigned)
    <b1>   DW_AT_byte_size   : 4
 <1><b2>: Abbrev Number: 7 (DW_TAG_typedef)
    <b3>   DW_AT_type        : <0xbe>
    <b7>   DW_AT_name        : (indirect string, offset: 0x1ad): v4l2_std_id
    <bb>   DW_AT_decl_file   : 2
    <bc>   DW_AT_decl_line   : 598
 <1><be>: Abbrev Number: 3 (DW_TAG_typedef)
    <bf>   DW_AT_type        : <0xc9>
    <c3>   DW_AT_name        : (indirect string, offset: 0x1a7): __u64
    <c7>   DW_AT_decl_file   : 1
    <c8>   DW_AT_decl_line   : 31
 <1><c9>: Abbrev Number: 6 (DW_TAG_base_type)
    <ca>   DW_AT_name        : (indirect string, offset: 0x190): long long unsigned int
    <ce>   DW_AT_encoding    : 7	(unsigned)
    <cf>   DW_AT_byte_size   : 8
 <1><d0>: Abbrev Number: 8 (DW_TAG_array_type)
    <d1>   DW_AT_type        : <0xdd>
 <2><d5>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <d6>   DW_AT_type        : <0xef>
    <da>   DW_AT_lower_bound : 0
    <db>   DW_AT_count       : 24
 <2><dc>: Abbrev Number: 0
 <1><dd>: Abbrev Number: 3 (DW_TAG_typedef)
    <de>   DW_AT_type        : <0xe8>
    <e2>   DW_AT_name        : (indirect string, offset: 0x1cc): __u8
    <e6>   DW_AT_decl_file   : 1
    <e7>   DW_AT_decl_line   : 24
 <1><e8>: Abbrev Number: 6 (DW_TAG_base_type)
    <e9>   DW_AT_name        : (indirect string, offset: 0x1be): unsigned char
    <ed>   DW_AT_encoding    : 8	(unsigned char)
    <ee>   DW_AT_byte_size   : 1
 <1><ef>: Abbrev Number: 10 (DW_TAG_base_type)
    <f0>   DW_AT_name        : (indirect string, offset: 0x1d1): sizetype
    <f4>   DW_AT_byte_size   : 8
    <f5>   DW_AT_encoding    : 7	(unsigned)
 <1><f6>: Abbrev Number: 11 (DW_TAG_structure_type)
    <f7>   DW_AT_name        : (indirect string, offset: 0x1fc): v4l2_fract
    <fb>   DW_AT_byte_size   : 8
    <fc>   DW_AT_decl_file   : 2
    <fd>   DW_AT_decl_line   : 141
 <2><fe>: Abbrev Number: 12 (DW_TAG_member)
    <ff>   DW_AT_name        : (indirect string, offset: 0x1e6): numerator
    <103>   DW_AT_type        : <0xa0>
    <107>   DW_AT_decl_file   : 2
    <108>   DW_AT_decl_line   : 142
    <109>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><10c>: Abbrev Number: 12 (DW_TAG_member)
    <10d>   DW_AT_name        : (indirect string, offset: 0x1f0): denominator
    <111>   DW_AT_type        : <0xa0>
    <115>   DW_AT_decl_file   : 2
    <116>   DW_AT_decl_line   : 143
    <117>   DW_AT_data_member_location: 2 byte block: 23 4 	(DW_OP_plus_uconst: 4)
 <2><11a>: Abbrev Number: 0
 <1><11b>: Abbrev Number: 8 (DW_TAG_array_type)
    <11c>   DW_AT_type        : <0xa0>
 <2><120>: Abbrev Number: 9 (DW_TAG_subrange_type)
    <121>   DW_AT_type        : <0xef>
    <125>   DW_AT_lower_bound : 0
    <126>   DW_AT_count       : 4
 <2><127>: Abbrev Number: 0
 <1><128>: Abbrev Number: 0

