1/* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2014-2020 Free Software Foundation, Inc. 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 18/* This file is compiled from a single line 19 int main (int argc, char **argv) { return 0; } 20 using -g -dA -S -O2 and patched as #if-ed below. */ 21 22 .file "py-framefilter-invalidarg.c" 23 .text 24.Ltext0: 25 .globl main 26 .type main, @function 27main: 28.LFB0: 29 .file 1 "py-framefilter-invalidarg.c" 30 # py-framefilter-invalidarg.c:1 31 .loc 1 1 0 32 .cfi_startproc 33# BLOCK 2 seq:0 34# PRED: ENTRY (FALLTHRU) 35 pushq %rbp 36 .cfi_def_cfa_offset 16 37 .cfi_offset 6, -16 38 movq %rsp, %rbp 39 .cfi_def_cfa_register 6 40 movl %edi, -4(%rbp) 41 movq %rsi, -16(%rbp) 42 # py-framefilter-invalidarg.c:2 43 .loc 1 2 0 44 movl $0, %eax 45 # py-framefilter-invalidarg.c:3 46 .loc 1 3 0 47 popq %rbp 48 .cfi_def_cfa 7, 8 49# SUCC: EXIT [100.0%] 50 ret 51 .cfi_endproc 52.LFE0: 53 .size main, .-main 54.Letext0: 55 .section .debug_info,"",@progbits 56.Ldebug_info0: 57 .long .Le - .Ls # Length of Compilation Unit Info 58.Ls: 59 .value 0x4 # DWARF version number 60 .long .Ldebug_abbrev0 # Offset Into Abbrev. Section 61 .byte 0x8 # Pointer Size (in bytes) 62 .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit) 63 .long .LASF3 # DW_AT_producer: "GNU C 4.9.1 20140813 (Red Hat 4.9.1-7) -mtune=generic -march=x86-64 -g" 64 .byte 0x1 # DW_AT_language 65 .long .LASF4 # DW_AT_name: "py-framefilter-invalidarg.c" 66 .long .LASF5 # DW_AT_comp_dir: "" 67 .quad .Ltext0 # DW_AT_low_pc 68 .quad .Letext0-.Ltext0 # DW_AT_high_pc 69 .long .Ldebug_line0 # DW_AT_stmt_list 70die2d: 71 .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram) 72 # DW_AT_external 73 .long .LASF6 # DW_AT_name: "main" 74 .byte 0x1 # DW_AT_decl_file (py-framefilter-invalidarg.c) 75 .byte 0x1 # DW_AT_decl_line 76 # DW_AT_prototyped 77 .long die6b-.Ldebug_info0 # DW_AT_type 78 .quad .LFB0 # DW_AT_low_pc 79 .quad .LFE0-.LFB0 # DW_AT_high_pc 80 .uleb128 0x1 # DW_AT_frame_base 81 .byte 0x9c # DW_OP_call_frame_cfa 82 # DW_AT_GNU_all_call_sites 83die4e: 84 .uleb128 0x3 # (DIE (0x4e) DW_TAG_formal_parameter) 85 .long .LASF0 # DW_AT_name: "argc" 86 .byte 0x1 # DW_AT_decl_file (py-framefilter-invalidarg.c) 87 .byte 0x1 # DW_AT_decl_line 88 .long die6b-.Ldebug_info0 # DW_AT_type 89#if 0 90 .uleb128 0x2 # DW_AT_location 91 .byte 0x91 # DW_OP_fbreg 92 .sleb128 -20 93#endif 94#if 0 95 .uleb128 1f - 2f # DW_AT_location 962: 97 .byte 0x03 # DW_OP_addr 98 .quad 0 991: 100#endif 101#if 1 102 .uleb128 1f - 2f # DW_AT_location 1032: 104 .byte 0x13 # DW_OP_drop 105 .quad 0 1061: 107#endif 108die5c: 109 .uleb128 0x3 # (DIE (0x5c) DW_TAG_formal_parameter) 110 .long .LASF1 # DW_AT_name: "argv" 111 .byte 0x1 # DW_AT_decl_file (py-framefilter-invalidarg.c) 112 .byte 0x1 # DW_AT_decl_line 113 .long die72-.Ldebug_info0 # DW_AT_type 114 .uleb128 0x2 # DW_AT_location 115 .byte 0x91 # DW_OP_fbreg 116 .sleb128 -32 117 .byte 0 # end of children of DIE 0x2d 118die6b: 119 .uleb128 0x4 # (DIE (0x6b) DW_TAG_base_type) 120 .byte 0x4 # DW_AT_byte_size 121 .byte 0x5 # DW_AT_encoding 122 .ascii "int\0" # DW_AT_name 123die72: 124 .uleb128 0x5 # (DIE (0x72) DW_TAG_pointer_type) 125 .byte 0x8 # DW_AT_byte_size 126 .long die78-.Ldebug_info0 # DW_AT_type 127die78: 128 .uleb128 0x5 # (DIE (0x78) DW_TAG_pointer_type) 129 .byte 0x8 # DW_AT_byte_size 130 .long die7e-.Ldebug_info0 # DW_AT_type 131die7e: 132 .uleb128 0x6 # (DIE (0x7e) DW_TAG_base_type) 133 .byte 0x1 # DW_AT_byte_size 134 .byte 0x6 # DW_AT_encoding 135 .long .LASF2 # DW_AT_name: "char" 136 .byte 0 # end of children of DIE 0xb 137.Le: 138 .section .debug_abbrev,"",@progbits 139.Ldebug_abbrev0: 140 .uleb128 0x1 # (abbrev code) 141 .uleb128 0x11 # (TAG: DW_TAG_compile_unit) 142 .byte 0x1 # DW_children_yes 143 .uleb128 0x25 # (DW_AT_producer) 144 .uleb128 0xe # (DW_FORM_strp) 145 .uleb128 0x13 # (DW_AT_language) 146 .uleb128 0xb # (DW_FORM_data1) 147 .uleb128 0x3 # (DW_AT_name) 148 .uleb128 0xe # (DW_FORM_strp) 149 .uleb128 0x1b # (DW_AT_comp_dir) 150 .uleb128 0xe # (DW_FORM_strp) 151 .uleb128 0x11 # (DW_AT_low_pc) 152 .uleb128 0x1 # (DW_FORM_addr) 153 .uleb128 0x12 # (DW_AT_high_pc) 154 .uleb128 0x7 # (DW_FORM_data8) 155 .uleb128 0x10 # (DW_AT_stmt_list) 156 .uleb128 0x17 # (DW_FORM_sec_offset) 157 .byte 0 158 .byte 0 159 .uleb128 0x2 # (abbrev code) 160 .uleb128 0x2e # (TAG: DW_TAG_subprogram) 161 .byte 0x1 # DW_children_yes 162 .uleb128 0x3f # (DW_AT_external) 163 .uleb128 0x19 # (DW_FORM_flag_present) 164 .uleb128 0x3 # (DW_AT_name) 165 .uleb128 0xe # (DW_FORM_strp) 166 .uleb128 0x3a # (DW_AT_decl_file) 167 .uleb128 0xb # (DW_FORM_data1) 168 .uleb128 0x3b # (DW_AT_decl_line) 169 .uleb128 0xb # (DW_FORM_data1) 170 .uleb128 0x27 # (DW_AT_prototyped) 171 .uleb128 0x19 # (DW_FORM_flag_present) 172 .uleb128 0x49 # (DW_AT_type) 173 .uleb128 0x13 # (DW_FORM_ref4) 174 .uleb128 0x11 # (DW_AT_low_pc) 175 .uleb128 0x1 # (DW_FORM_addr) 176 .uleb128 0x12 # (DW_AT_high_pc) 177 .uleb128 0x7 # (DW_FORM_data8) 178 .uleb128 0x40 # (DW_AT_frame_base) 179 .uleb128 0x18 # (DW_FORM_exprloc) 180 .uleb128 0x2117 # (DW_AT_GNU_all_call_sites) 181 .uleb128 0x19 # (DW_FORM_flag_present) 182 .byte 0 183 .byte 0 184 .uleb128 0x3 # (abbrev code) 185 .uleb128 0x5 # (TAG: DW_TAG_formal_parameter) 186 .byte 0 # DW_children_no 187 .uleb128 0x3 # (DW_AT_name) 188 .uleb128 0xe # (DW_FORM_strp) 189 .uleb128 0x3a # (DW_AT_decl_file) 190 .uleb128 0xb # (DW_FORM_data1) 191 .uleb128 0x3b # (DW_AT_decl_line) 192 .uleb128 0xb # (DW_FORM_data1) 193 .uleb128 0x49 # (DW_AT_type) 194 .uleb128 0x13 # (DW_FORM_ref4) 195 .uleb128 0x2 # (DW_AT_location) 196 .uleb128 0x18 # (DW_FORM_exprloc) 197 .byte 0 198 .byte 0 199 .uleb128 0x4 # (abbrev code) 200 .uleb128 0x24 # (TAG: DW_TAG_base_type) 201 .byte 0 # DW_children_no 202 .uleb128 0xb # (DW_AT_byte_size) 203 .uleb128 0xb # (DW_FORM_data1) 204 .uleb128 0x3e # (DW_AT_encoding) 205 .uleb128 0xb # (DW_FORM_data1) 206 .uleb128 0x3 # (DW_AT_name) 207 .uleb128 0x8 # (DW_FORM_string) 208 .byte 0 209 .byte 0 210 .uleb128 0x5 # (abbrev code) 211 .uleb128 0xf # (TAG: DW_TAG_pointer_type) 212 .byte 0 # DW_children_no 213 .uleb128 0xb # (DW_AT_byte_size) 214 .uleb128 0xb # (DW_FORM_data1) 215 .uleb128 0x49 # (DW_AT_type) 216 .uleb128 0x13 # (DW_FORM_ref4) 217 .byte 0 218 .byte 0 219 .uleb128 0x6 # (abbrev code) 220 .uleb128 0x24 # (TAG: DW_TAG_base_type) 221 .byte 0 # DW_children_no 222 .uleb128 0xb # (DW_AT_byte_size) 223 .uleb128 0xb # (DW_FORM_data1) 224 .uleb128 0x3e # (DW_AT_encoding) 225 .uleb128 0xb # (DW_FORM_data1) 226 .uleb128 0x3 # (DW_AT_name) 227 .uleb128 0xe # (DW_FORM_strp) 228 .byte 0 229 .byte 0 230 .byte 0 231 .section .debug_aranges,"",@progbits 232 .long 0x2c # Length of Address Ranges Info 233 .value 0x2 # DWARF Version 234 .long .Ldebug_info0 # Offset of Compilation Unit Info 235 .byte 0x8 # Size of Address 236 .byte 0 # Size of Segment Descriptor 237 .value 0 # Pad to 16 byte boundary 238 .value 0 239 .quad .Ltext0 # Address 240 .quad .Letext0-.Ltext0 # Length 241 .quad 0 242 .quad 0 243 .section .debug_line,"",@progbits 244.Ldebug_line0: 245 .section .debug_str,"MS",@progbits,1 246.LASF1: 247 .string "argv" 248.LASF4: 249 .string "py-framefilter-invalidarg.c" 250.LASF5: 251 .string "" 252.LASF0: 253 .string "argc" 254.LASF3: 255 .string "GNU C 4.9.1 20140813 (Red Hat 4.9.1-7) -mtune=generic -march=x86-64 -g" 256.LASF6: 257 .string "main" 258.LASF2: 259 .string "char" 260 .ident "GCC: (GNU) 4.9.1 20140813 (Red Hat 4.9.1-7)" 261 .section .note.GNU-stack,"",@progbits 262