310 lines · plain
1# clang++ -ffunction-sections -g2 -gdwarf-42# Manually modified to use ranges like what generates sometimes -fbasic-block-sections=all3# int doStuff(int val) {4# if (val)5# ++val;6# return val;7# }8#9# int main(int argc, const char** argv) {10# return doStuff(argc);11# }12 .text13 .file "main.cpp"14 .section .text._Z7doStuffi,"ax",@progbits15 .globl _Z7doStuffi # -- Begin function _Z7doStuffi16 .p2align 4, 0x9017 .type _Z7doStuffi,@function18_Z7doStuffi: # @_Z7doStuffi19.Lfunc_begin0:20 .file 1 "/subprogramRanges" "main.cpp"21 .loc 1 1 0 # main.cpp:1:022 .cfi_startproc23# %bb.0: # %entry24 pushq %rbp25 .cfi_def_cfa_offset 1626 .cfi_offset %rbp, -1627 movq %rsp, %rbp28 .cfi_def_cfa_register %rbp29 movl %edi, -4(%rbp)30.Ltmp0:31 .loc 1 2 7 prologue_end # main.cpp:2:732 cmpl $0, -4(%rbp)33.Ltmp1:34 .loc 1 2 7 is_stmt 0 # main.cpp:2:735 je .LBB0_236# %bb.1: # %if.then37.Ltmp2:38 .loc 1 3 5 is_stmt 1 # main.cpp:3:539 movl -4(%rbp), %eax40 addl $1, %eax41 movl %eax, -4(%rbp)42.Ltmp3:43.LBB0_2: # %if.end44 .loc 1 4 10 # main.cpp:4:1045 movl -4(%rbp), %eax46 .loc 1 4 3 epilogue_begin is_stmt 0 # main.cpp:4:347 popq %rbp48 .cfi_def_cfa %rsp, 849 retq50.Ltmp4:51.Lfunc_end0:52 .size _Z7doStuffi, .Lfunc_end0-_Z7doStuffi53 .cfi_endproc54 # -- End function55 .section .text.main,"ax",@progbits56 .globl main # -- Begin function main57 .p2align 4, 0x9058 .type main,@function59main: # @main60.Lfunc_begin1:61 .loc 1 7 0 is_stmt 1 # main.cpp:7:062 .cfi_startproc63# %bb.0: # %entry64 pushq %rbp65 .cfi_def_cfa_offset 1666 .cfi_offset %rbp, -1667 movq %rsp, %rbp68 .cfi_def_cfa_register %rbp69 subq $16, %rsp70 movl $0, -4(%rbp)71 movl %edi, -8(%rbp)72 movq %rsi, -16(%rbp)73.Ltmp5:74 .loc 1 8 21 prologue_end # main.cpp:8:2175 movl -8(%rbp), %edi76 .loc 1 8 13 is_stmt 0 # main.cpp:8:1377 callq _Z7doStuffi78 .loc 1 8 5 epilogue_begin # main.cpp:8:579 addq $16, %rsp80 popq %rbp81 .cfi_def_cfa %rsp, 882 retq83.Ltmp6:84.Lfunc_end1:85 .size main, .Lfunc_end1-main86 .cfi_endproc87 # -- End function88 .section .debug_abbrev,"",@progbits89 .byte 1 # Abbreviation Code90 .byte 17 # DW_TAG_compile_unit91 .byte 1 # DW_CHILDREN_yes92 .byte 37 # DW_AT_producer93 .byte 14 # DW_FORM_strp94 .byte 19 # DW_AT_language95 .byte 5 # DW_FORM_data296 .byte 3 # DW_AT_name97 .byte 14 # DW_FORM_strp98 .byte 16 # DW_AT_stmt_list99 .byte 23 # DW_FORM_sec_offset100 .byte 27 # DW_AT_comp_dir101 .byte 14 # DW_FORM_strp102 .byte 17 # DW_AT_low_pc103 .byte 1 # DW_FORM_addr104 .byte 85 # DW_AT_ranges105 .byte 23 # DW_FORM_sec_offset106 .byte 0 # EOM(1)107 .byte 0 # EOM(2)108 .byte 2 # Abbreviation Code109 .byte 46 # DW_TAG_subprogram110 .byte 1 # DW_CHILDREN_yes111 .byte 85 # DW_AT_ranges112 .byte 23 # DW_FORM_sec_offset113 .byte 64 # DW_AT_frame_base114 .byte 24 # DW_FORM_exprloc115 .byte 110 # DW_AT_linkage_name116 .byte 14 # DW_FORM_strp117 .byte 3 # DW_AT_name118 .byte 14 # DW_FORM_strp119 .byte 58 # DW_AT_decl_file120 .byte 11 # DW_FORM_data1121 .byte 59 # DW_AT_decl_line122 .byte 11 # DW_FORM_data1123 .byte 73 # DW_AT_type124 .byte 19 # DW_FORM_ref4125 .byte 63 # DW_AT_external126 .byte 25 # DW_FORM_flag_present127 .byte 0 # EOM(1)128 .byte 0 # EOM(2)129 .byte 3 # Abbreviation Code130 .byte 5 # DW_TAG_formal_parameter131 .byte 0 # DW_CHILDREN_no132 .byte 2 # DW_AT_location133 .byte 24 # DW_FORM_exprloc134 .byte 3 # DW_AT_name135 .byte 14 # DW_FORM_strp136 .byte 58 # DW_AT_decl_file137 .byte 11 # DW_FORM_data1138 .byte 59 # DW_AT_decl_line139 .byte 11 # DW_FORM_data1140 .byte 73 # DW_AT_type141 .byte 19 # DW_FORM_ref4142 .byte 0 # EOM(1)143 .byte 0 # EOM(2)144 .byte 4 # Abbreviation Code145 .byte 46 # DW_TAG_subprogram146 .byte 1 # DW_CHILDREN_yes147 .byte 17 # DW_AT_low_pc148 .byte 1 # DW_FORM_addr149 .byte 18 # DW_AT_high_pc150 .byte 6 # DW_FORM_data4151 .byte 64 # DW_AT_frame_base152 .byte 24 # DW_FORM_exprloc153 .byte 3 # DW_AT_name154 .byte 14 # DW_FORM_strp155 .byte 58 # DW_AT_decl_file156 .byte 11 # DW_FORM_data1157 .byte 59 # DW_AT_decl_line158 .byte 11 # DW_FORM_data1159 .byte 73 # DW_AT_type160 .byte 19 # DW_FORM_ref4161 .byte 63 # DW_AT_external162 .byte 25 # DW_FORM_flag_present163 .byte 0 # EOM(1)164 .byte 0 # EOM(2)165 .byte 5 # Abbreviation Code166 .byte 36 # DW_TAG_base_type167 .byte 0 # DW_CHILDREN_no168 .byte 3 # DW_AT_name169 .byte 14 # DW_FORM_strp170 .byte 62 # DW_AT_encoding171 .byte 11 # DW_FORM_data1172 .byte 11 # DW_AT_byte_size173 .byte 11 # DW_FORM_data1174 .byte 0 # EOM(1)175 .byte 0 # EOM(2)176 .byte 6 # Abbreviation Code177 .byte 15 # DW_TAG_pointer_type178 .byte 0 # DW_CHILDREN_no179 .byte 73 # DW_AT_type180 .byte 19 # DW_FORM_ref4181 .byte 0 # EOM(1)182 .byte 0 # EOM(2)183 .byte 7 # Abbreviation Code184 .byte 38 # DW_TAG_const_type185 .byte 0 # DW_CHILDREN_no186 .byte 73 # DW_AT_type187 .byte 19 # DW_FORM_ref4188 .byte 0 # EOM(1)189 .byte 0 # EOM(2)190 .byte 0 # EOM(3)191 .section .debug_info,"",@progbits192.Lcu_begin0:193 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit194.Ldebug_info_start0:195 .short 4 # DWARF version number196 .long .debug_abbrev # Offset Into Abbrev. Section197 .byte 8 # Address Size (in bytes)198 .byte 1 # Abbrev [1] 0xb:0x9f DW_TAG_compile_unit199 .long .Linfo_string0 # DW_AT_producer200 .short 33 # DW_AT_language201 .long .Linfo_string1 # DW_AT_name202 .long .Lline_table_start0 # DW_AT_stmt_list203 .long .Linfo_string2 # DW_AT_comp_dir204 .quad 0 # DW_AT_low_pc205 .long .Ldebug_ranges0 # DW_AT_ranges206 .byte 2 # Abbrev [2] 0x2a:0x2c DW_TAG_subprogram207 .long .Ldebug_ranges1 # DW_AT_ranges208 .byte 1 # DW_AT_frame_base209 .byte 86210 .long .Linfo_string3 # DW_AT_linkage_name211 .long .Linfo_string4 # DW_AT_name212 .byte 1 # DW_AT_decl_file213 .byte 1 # DW_AT_decl_line214 .long 132 # DW_AT_type215 # DW_AT_external216 .byte 3 # Abbrev [3] 0x47:0xe DW_TAG_formal_parameter217 .byte 2 # DW_AT_location218 .byte 145219 .byte 124220 .long .Linfo_string7 # DW_AT_name221 .byte 1 # DW_AT_decl_file222 .byte 1 # DW_AT_decl_line223 .long 132 # DW_AT_type224 .byte 0 # End Of Children Mark225 .byte 4 # Abbrev [4] 0x56:0x36 DW_TAG_subprogram226 .quad .Lfunc_begin1 # DW_AT_low_pc227 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc228 .byte 1 # DW_AT_frame_base229 .byte 86230 .long .Linfo_string6 # DW_AT_name231 .byte 1 # DW_AT_decl_file232 .byte 7 # DW_AT_decl_line233 .long 132 # DW_AT_type234 # DW_AT_external235 .byte 3 # Abbrev [3] 0x6f:0xe DW_TAG_formal_parameter236 .byte 2 # DW_AT_location237 .byte 145238 .byte 120239 .long .Linfo_string8 # DW_AT_name240 .byte 1 # DW_AT_decl_file241 .byte 7 # DW_AT_decl_line242 .long 132 # DW_AT_type243 .byte 3 # Abbrev [3] 0x7d:0xe DW_TAG_formal_parameter244 .byte 2 # DW_AT_location245 .byte 145246 .byte 112247 .long .Linfo_string9 # DW_AT_name248 .byte 1 # DW_AT_decl_file249 .byte 7 # DW_AT_decl_line250 .long 144 # DW_AT_type251 .byte 0 # End Of Children Mark252 .byte 5 # Abbrev [5] 0x8c:0x7 DW_TAG_base_type253 .long .Linfo_string5 # DW_AT_name254 .byte 5 # DW_AT_encoding255 .byte 4 # DW_AT_byte_size256 .byte 6 # Abbrev [6] 0x93:0x5 DW_TAG_pointer_type257 .long 144 # DW_AT_type258 .byte 6 # Abbrev [6] 0x98:0x5 DW_TAG_pointer_type259 .long 149 # DW_AT_type260 .byte 7 # Abbrev [7] 0x9d:0x5 DW_TAG_const_type261 .long 154 # DW_AT_type262 .byte 5 # Abbrev [5] 0xa2:0x7 DW_TAG_base_type263 .long .Linfo_string10 # DW_AT_name264 .byte 6 # DW_AT_encoding265 .byte 1 # DW_AT_byte_size266 .byte 0 # End Of Children Mark267.Ldebug_info_end0:268 .section .debug_ranges,"",@progbits269.Ldebug_ranges0:270 .quad .Lfunc_begin0271 .quad .Lfunc_end0272 .quad .Lfunc_begin1273 .quad .Lfunc_end1274 .quad 0275 .quad 0276.Ldebug_ranges1:277 .quad .Lfunc_begin0278 .quad .Lfunc_end0279 .quad 0280 .quad 0281 .section .debug_str,"MS",@progbits,1282.Linfo_string0:283 .asciz "clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)" # string offset=0284.Linfo_string1:285 .asciz "main.cpp" # string offset=105286.Linfo_string2:287 .asciz "/subprogramRanges" # string offset=114288.Linfo_string3:289 .asciz "_Z7doStuffi" # string offset=169290.Linfo_string4:291 .asciz "doStuff" # string offset=181292.Linfo_string5:293 .asciz "int" # string offset=189294.Linfo_string6:295 .asciz "main" # string offset=193296.Linfo_string7:297 .asciz "val" # string offset=198298.Linfo_string8:299 .asciz "argc" # string offset=202300.Linfo_string9:301 .asciz "argv" # string offset=207302.Linfo_string10:303 .asciz "char" # string offset=212304 .ident "clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)"305 .section ".note.GNU-stack","",@progbits306 .addrsig307 .addrsig_sym _Z7doStuffi308 .section .debug_line,"",@progbits309.Lline_table_start0:310