1# clang++ helper.cpp -g2 -gdwarf-5 -gno-pubnames -fdebug-types-section -S -o helperTypes.s 2# struct Foo1 { 3# char a1; 4# char a2; 5# char a3; 6# }; 7# 8# struct Foo2 { 9# int b1; 10# int b2; 11# }; 12# 13# Foo1 f1; 14# Foo2 f2; 15 16# Manually removed Compile Unit .debug_info section. 17 18 .text 19 .file "helper.cpp" 20 .file 0 "/home" "helper.cpp" md5 0xd58ef77d520bf2e6491a2e387a3501f1 21 .section .debug_info,"G",@progbits,5391472263833448044,comdat 22.Ltu_begin0: 23 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 24.Ldebug_info_start0: 25 .short 5 # DWARF version number 26 .byte 2 # DWARF Unit Type 27 .byte 8 # Address Size (in bytes) 28 .long .debug_abbrev # Offset Into Abbrev. Section 29 .quad 5391472263833448044 # Type Signature 30 .long 35 # Type DIE Offset 31 .byte 1 # Abbrev [1] 0x18:0x32 DW_TAG_type_unit 32 .short 33 # DW_AT_language 33 .long .Lline_table_start0 # DW_AT_stmt_list 34 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 35 .byte 2 # Abbrev [2] 0x23:0x22 DW_TAG_structure_type 36 .byte 5 # DW_AT_calling_convention 37 .byte 8 # DW_AT_name 38 .byte 3 # DW_AT_byte_size 39 .byte 0 # DW_AT_decl_file 40 .byte 1 # DW_AT_decl_line 41 .byte 3 # Abbrev [3] 0x29:0x9 DW_TAG_member 42 .byte 4 # DW_AT_name 43 .long 69 # DW_AT_type 44 .byte 0 # DW_AT_decl_file 45 .byte 2 # DW_AT_decl_line 46 .byte 0 # DW_AT_data_member_location 47 .byte 3 # Abbrev [3] 0x32:0x9 DW_TAG_member 48 .byte 6 # DW_AT_name 49 .long 69 # DW_AT_type 50 .byte 0 # DW_AT_decl_file 51 .byte 3 # DW_AT_decl_line 52 .byte 1 # DW_AT_data_member_location 53 .byte 3 # Abbrev [3] 0x3b:0x9 DW_TAG_member 54 .byte 7 # DW_AT_name 55 .long 69 # DW_AT_type 56 .byte 0 # DW_AT_decl_file 57 .byte 4 # DW_AT_decl_line 58 .byte 2 # DW_AT_data_member_location 59 .byte 0 # End Of Children Mark 60 .byte 4 # Abbrev [4] 0x45:0x4 DW_TAG_base_type 61 .byte 5 # DW_AT_name 62 .byte 6 # DW_AT_encoding 63 .byte 1 # DW_AT_byte_size 64 .byte 0 # End Of Children Mark 65.Ldebug_info_end0: 66 .section .debug_info,"G",@progbits,5322170643381124694,comdat 67.Ltu_begin1: 68 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit 69.Ldebug_info_start1: 70 .short 5 # DWARF version number 71 .byte 2 # DWARF Unit Type 72 .byte 8 # Address Size (in bytes) 73 .long .debug_abbrev # Offset Into Abbrev. Section 74 .quad 5322170643381124694 # Type Signature 75 .long 35 # Type DIE Offset 76 .byte 1 # Abbrev [1] 0x18:0x29 DW_TAG_type_unit 77 .short 33 # DW_AT_language 78 .long .Lline_table_start0 # DW_AT_stmt_list 79 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 80 .byte 2 # Abbrev [2] 0x23:0x19 DW_TAG_structure_type 81 .byte 5 # DW_AT_calling_convention 82 .byte 13 # DW_AT_name 83 .byte 8 # DW_AT_byte_size 84 .byte 0 # DW_AT_decl_file 85 .byte 7 # DW_AT_decl_line 86 .byte 3 # Abbrev [3] 0x29:0x9 DW_TAG_member 87 .byte 10 # DW_AT_name 88 .long 60 # DW_AT_type 89 .byte 0 # DW_AT_decl_file 90 .byte 8 # DW_AT_decl_line 91 .byte 0 # DW_AT_data_member_location 92 .byte 3 # Abbrev [3] 0x32:0x9 DW_TAG_member 93 .byte 12 # DW_AT_name 94 .long 60 # DW_AT_type 95 .byte 0 # DW_AT_decl_file 96 .byte 9 # DW_AT_decl_line 97 .byte 4 # DW_AT_data_member_location 98 .byte 0 # End Of Children Mark 99 .byte 4 # Abbrev [4] 0x3c:0x4 DW_TAG_base_type 100 .byte 11 # DW_AT_name 101 .byte 5 # DW_AT_encoding 102 .byte 4 # DW_AT_byte_size 103 .byte 0 # End Of Children Mark 104.Ldebug_info_end1: 105 .type f1,@object # @f1 106 .bss 107 .globl f1 108f1: 109 .zero 3 110 .size f1, 3 111 112 .type f2,@object # @f2 113 .globl f2 114 .p2align 2, 0x0 115f2: 116 .zero 8 117 .size f2, 8 118 119 .section .debug_abbrev,"",@progbits 120 .byte 1 # Abbreviation Code 121 .byte 65 # DW_TAG_type_unit 122 .byte 1 # DW_CHILDREN_yes 123 .byte 19 # DW_AT_language 124 .byte 5 # DW_FORM_data2 125 .byte 16 # DW_AT_stmt_list 126 .byte 23 # DW_FORM_sec_offset 127 .byte 114 # DW_AT_str_offsets_base 128 .byte 23 # DW_FORM_sec_offset 129 .byte 0 # EOM(1) 130 .byte 0 # EOM(2) 131 .byte 2 # Abbreviation Code 132 .byte 19 # DW_TAG_structure_type 133 .byte 1 # DW_CHILDREN_yes 134 .byte 54 # DW_AT_calling_convention 135 .byte 11 # DW_FORM_data1 136 .byte 3 # DW_AT_name 137 .byte 37 # DW_FORM_strx1 138 .byte 11 # DW_AT_byte_size 139 .byte 11 # DW_FORM_data1 140 .byte 58 # DW_AT_decl_file 141 .byte 11 # DW_FORM_data1 142 .byte 59 # DW_AT_decl_line 143 .byte 11 # DW_FORM_data1 144 .byte 0 # EOM(1) 145 .byte 0 # EOM(2) 146 .byte 3 # Abbreviation Code 147 .byte 13 # DW_TAG_member 148 .byte 0 # DW_CHILDREN_no 149 .byte 3 # DW_AT_name 150 .byte 37 # DW_FORM_strx1 151 .byte 73 # DW_AT_type 152 .byte 19 # DW_FORM_ref4 153 .byte 58 # DW_AT_decl_file 154 .byte 11 # DW_FORM_data1 155 .byte 59 # DW_AT_decl_line 156 .byte 11 # DW_FORM_data1 157 .byte 56 # DW_AT_data_member_location 158 .byte 11 # DW_FORM_data1 159 .byte 0 # EOM(1) 160 .byte 0 # EOM(2) 161 .byte 4 # Abbreviation Code 162 .byte 36 # DW_TAG_base_type 163 .byte 0 # DW_CHILDREN_no 164 .byte 3 # DW_AT_name 165 .byte 37 # DW_FORM_strx1 166 .byte 62 # DW_AT_encoding 167 .byte 11 # DW_FORM_data1 168 .byte 11 # DW_AT_byte_size 169 .byte 11 # DW_FORM_data1 170 .byte 0 # EOM(1) 171 .byte 0 # EOM(2) 172 .byte 5 # Abbreviation Code 173 .byte 17 # DW_TAG_compile_unit 174 .byte 1 # DW_CHILDREN_yes 175 .byte 37 # DW_AT_producer 176 .byte 37 # DW_FORM_strx1 177 .byte 19 # DW_AT_language 178 .byte 5 # DW_FORM_data2 179 .byte 3 # DW_AT_name 180 .byte 37 # DW_FORM_strx1 181 .byte 114 # DW_AT_str_offsets_base 182 .byte 23 # DW_FORM_sec_offset 183 .byte 16 # DW_AT_stmt_list 184 .byte 23 # DW_FORM_sec_offset 185 .byte 27 # DW_AT_comp_dir 186 .byte 37 # DW_FORM_strx1 187 .byte 115 # DW_AT_addr_base 188 .byte 23 # DW_FORM_sec_offset 189 .byte 0 # EOM(1) 190 .byte 0 # EOM(2) 191 .byte 6 # Abbreviation Code 192 .byte 52 # DW_TAG_variable 193 .byte 0 # DW_CHILDREN_no 194 .byte 3 # DW_AT_name 195 .byte 37 # DW_FORM_strx1 196 .byte 73 # DW_AT_type 197 .byte 19 # DW_FORM_ref4 198 .byte 63 # DW_AT_external 199 .byte 25 # DW_FORM_flag_present 200 .byte 58 # DW_AT_decl_file 201 .byte 11 # DW_FORM_data1 202 .byte 59 # DW_AT_decl_line 203 .byte 11 # DW_FORM_data1 204 .byte 2 # DW_AT_location 205 .byte 24 # DW_FORM_exprloc 206 .byte 0 # EOM(1) 207 .byte 0 # EOM(2) 208 .byte 7 # Abbreviation Code 209 .byte 19 # DW_TAG_structure_type 210 .byte 0 # DW_CHILDREN_no 211 .byte 60 # DW_AT_declaration 212 .byte 25 # DW_FORM_flag_present 213 .byte 105 # DW_AT_signature 214 .byte 32 # DW_FORM_ref_sig8 215 .byte 0 # EOM(1) 216 .byte 0 # EOM(2) 217 .byte 0 # EOM(3) 218 .section .debug_str_offsets,"",@progbits 219 .long 60 # Length of String Offsets Set 220 .short 5 221 .short 0 222.Lstr_offsets_base0: 223 .section .debug_str,"MS",@progbits,1 224.Linfo_string0: 225 .asciz "clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)" # string offset=0 226.Linfo_string1: 227 .asciz "helper.cpp" # string offset=104 228.Linfo_string2: 229 .asciz "/home" # string offset=115 230.Linfo_string3: 231 .asciz "f1" # string offset=153 232.Linfo_string4: 233 .asciz "a1" # string offset=156 234.Linfo_string5: 235 .asciz "char" # string offset=159 236.Linfo_string6: 237 .asciz "a2" # string offset=164 238.Linfo_string7: 239 .asciz "a3" # string offset=167 240.Linfo_string8: 241 .asciz "Foo1" # string offset=170 242.Linfo_string9: 243 .asciz "f2" # string offset=175 244.Linfo_string10: 245 .asciz "b1" # string offset=178 246.Linfo_string11: 247 .asciz "int" # string offset=181 248.Linfo_string12: 249 .asciz "b2" # string offset=185 250.Linfo_string13: 251 .asciz "Foo2" # string offset=188 252 .section .debug_str_offsets,"",@progbits 253 .long .Linfo_string0 254 .long .Linfo_string1 255 .long .Linfo_string2 256 .long .Linfo_string3 257 .long .Linfo_string4 258 .long .Linfo_string5 259 .long .Linfo_string6 260 .long .Linfo_string7 261 .long .Linfo_string8 262 .long .Linfo_string9 263 .long .Linfo_string10 264 .long .Linfo_string11 265 .long .Linfo_string12 266 .long .Linfo_string13 267 .section .debug_addr,"",@progbits 268 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 269.Ldebug_addr_start0: 270 .short 5 # DWARF version number 271 .byte 8 # Address size 272 .byte 0 # Segment selector size 273.Laddr_table_base0: 274 .quad f1 275 .quad f2 276.Ldebug_addr_end0: 277 .ident "clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)" 278 .section ".note.GNU-stack","",@progbits 279 .addrsig 280 .section .debug_line,"",@progbits 281.Lline_table_start0: 282