Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xe7 (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_sigevent.c
    <16>   DW_AT_stmt_list   : 0x0
    <1a>   DW_AT_comp_dir    : (indirect string, offset: 0x123): /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: 0x15e): mpers_target_var
    <24>   DW_AT_type        : <0x31>
    <28>   DW_AT_external    : 1
    <29>   DW_AT_decl_file   : 2
    <2a>   DW_AT_decl_line   : 32
    <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: 0x1eb): struct_sigevent
    <3a>   DW_AT_decl_file   : 1
    <3b>   DW_AT_decl_line   : 45
 <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
    <3d>   DW_AT_byte_size   : 20
    <3e>   DW_AT_decl_file   : 1
    <3f>   DW_AT_decl_line   : 31
 <2><40>: Abbrev Number: 5 (DW_TAG_member)
    <41>   DW_AT_name        : (indirect string, offset: 0x16f): sigev_value
    <45>   DW_AT_type        : <0x4e>
    <49>   DW_AT_decl_file   : 1
    <4a>   DW_AT_decl_line   : 35
    <4b>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <2><4e>: Abbrev Number: 6 (DW_TAG_union_type)
    <4f>   DW_AT_byte_size   : 4
    <50>   DW_AT_decl_file   : 1
    <51>   DW_AT_decl_line   : 32
 <3><52>: Abbrev Number: 5 (DW_TAG_member)
    <53>   DW_AT_name        : (indirect string, offset: 0x17b): sival_int
    <57>   DW_AT_type        : <0xdc>
    <5b>   DW_AT_decl_file   : 1
    <5c>   DW_AT_decl_line   : 33
    <5d>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <3><60>: Abbrev Number: 5 (DW_TAG_member)
    <61>   DW_AT_name        : (indirect string, offset: 0x189): sival_ptr
    <65>   DW_AT_type        : <0xe3>
    <69>   DW_AT_decl_file   : 1
    <6a>   DW_AT_decl_line   : 34
    <6b>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <3><6e>: Abbrev Number: 0
 <2><6f>: Abbrev Number: 5 (DW_TAG_member)
    <70>   DW_AT_name        : (indirect string, offset: 0x1a5): sigev_signo
    <74>   DW_AT_type        : <0xdc>
    <78>   DW_AT_decl_file   : 1
    <79>   DW_AT_decl_line   : 36
    <7a>   DW_AT_data_member_location: 2 byte block: 23 4 	(DW_OP_plus_uconst: 4)
 <2><7d>: Abbrev Number: 5 (DW_TAG_member)
    <7e>   DW_AT_name        : (indirect string, offset: 0x1b1): sigev_notify
    <82>   DW_AT_type        : <0xdc>
    <86>   DW_AT_decl_file   : 1
    <87>   DW_AT_decl_line   : 37
    <88>   DW_AT_data_member_location: 2 byte block: 23 8 	(DW_OP_plus_uconst: 8)
 <2><8b>: Abbrev Number: 5 (DW_TAG_member)
    <8c>   DW_AT_name        : (indirect string, offset: 0x1be): sigev_un
    <90>   DW_AT_type        : <0x99>
    <94>   DW_AT_decl_file   : 1
    <95>   DW_AT_decl_line   : 44
    <96>   DW_AT_data_member_location: 2 byte block: 23 c 	(DW_OP_plus_uconst: 12)
 <2><99>: Abbrev Number: 6 (DW_TAG_union_type)
    <9a>   DW_AT_byte_size   : 8
    <9b>   DW_AT_decl_file   : 1
    <9c>   DW_AT_decl_line   : 38
 <3><9d>: Abbrev Number: 5 (DW_TAG_member)
    <9e>   DW_AT_name        : (indirect string, offset: 0x1c7): tid
    <a2>   DW_AT_type        : <0xdc>
    <a6>   DW_AT_decl_file   : 1
    <a7>   DW_AT_decl_line   : 39
    <a8>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <3><ab>: Abbrev Number: 5 (DW_TAG_member)
    <ac>   DW_AT_name        : (indirect string, offset: 0x1cb): sigev_thread
    <b0>   DW_AT_type        : <0xb9>
    <b4>   DW_AT_decl_file   : 1
    <b5>   DW_AT_decl_line   : 43
    <b6>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <3><b9>: Abbrev Number: 4 (DW_TAG_structure_type)
    <ba>   DW_AT_byte_size   : 8
    <bb>   DW_AT_decl_file   : 1
    <bc>   DW_AT_decl_line   : 40
 <4><bd>: Abbrev Number: 5 (DW_TAG_member)
    <be>   DW_AT_name        : (indirect string, offset: 0x1d8): function
    <c2>   DW_AT_type        : <0xe3>
    <c6>   DW_AT_decl_file   : 1
    <c7>   DW_AT_decl_line   : 41
    <c8>   DW_AT_data_member_location: 2 byte block: 23 0 	(DW_OP_plus_uconst: 0)
 <4><cb>: Abbrev Number: 5 (DW_TAG_member)
    <cc>   DW_AT_name        : (indirect string, offset: 0x1e1): attribute
    <d0>   DW_AT_type        : <0xe3>
    <d4>   DW_AT_decl_file   : 1
    <d5>   DW_AT_decl_line   : 42
    <d6>   DW_AT_data_member_location: 2 byte block: 23 4 	(DW_OP_plus_uconst: 4)
 <4><d9>: Abbrev Number: 0
 <3><da>: Abbrev Number: 0
 <2><db>: Abbrev Number: 0
 <1><dc>: Abbrev Number: 7 (DW_TAG_base_type)
    <dd>   DW_AT_name        : (indirect string, offset: 0x185): int
    <e1>   DW_AT_encoding    : 5	(signed)
    <e2>   DW_AT_byte_size   : 4
 <1><e3>: Abbrev Number: 7 (DW_TAG_base_type)
    <e4>   DW_AT_name        : (indirect string, offset: 0x193): long unsigned int
    <e8>   DW_AT_encoding    : 7	(unsigned)
    <e9>   DW_AT_byte_size   : 4
 <1><ea>: Abbrev Number: 0

