1/* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2007-2015 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 .data 19 20 .globl file_locaddr_resolvable 21file_locaddr_resolvable: 22 .globl file_locempty_resolvable 23file_locempty_resolvable: 24 .globl file_locno_resolvable 25file_locno_resolvable: 26 .globl file_extern_locaddr_resolvable 27file_extern_locaddr_resolvable: 28 .globl file_extern_locempty_resolvable 29file_extern_locempty_resolvable: 30 .globl file_extern_locno_resolvable 31file_extern_locno_resolvable: 32 .globl main_local_locaddr_resolvable 33main_local_locaddr_resolvable: 34 .globl main_local_locempty_resolvable 35main_local_locempty_resolvable: 36 .globl main_local_locno_resolvable 37main_local_locno_resolvable: 38 .globl main_extern_locaddr_resolvable 39main_extern_locaddr_resolvable: 40 .globl main_extern_locno_resolvable 41main_extern_locno_resolvable: 42 .globl main_extern_locempty_resolvable 43main_extern_locempty_resolvable: 44 45resolvable: 46 .4byte 1234567890 47 48/* Debug information */ 49 50 .section .debug_info 51.Lcu1_begin: 52 /* CU header */ 53 .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */ 54.Lcu1_start: 55 .2byte 2 /* DWARF Version */ 56 .4byte .Labbrev1_begin /* Offset into abbrev section */ 57 .byte 4 /* Pointer size */ 58 59 /* CU die */ 60 .uleb128 1 /* Abbrev: DW_TAG_compile_unit */ 61 .4byte cu_text_end /* DW_AT_high_pc */ 62 .4byte cu_text_start /* DW_AT_low_pc */ 63 .ascii "file1.txt\0" /* DW_AT_name */ 64 .ascii "GNU C 3.3.3\0" /* DW_AT_producer */ 65 .byte 1 /* DW_AT_language (C) */ 66 67.Ltype_int: 68 .uleb128 3 /* Abbrev: DW_TAG_base_type */ 69 .ascii "int\0" /* DW_AT_name */ 70 .byte 4 /* DW_AT_byte_size */ 71 .byte 5 /* DW_AT_encoding */ 72 73 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 74 .ascii "file_locaddr_resolvable\0" /* DW_AT_name */ 75 .byte 2f - 1f /* DW_AT_location */ 761: .byte 3 /* DW_OP_addr */ 77 .4byte resolvable /* <addr> */ 782: .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 79 80 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 81 .ascii "file_locaddr_unresolvable\0" /* DW_AT_name */ 82 .byte 2f - 1f /* DW_AT_location */ 831: .byte 3 /* DW_OP_addr */ 84 .4byte resolvable /* <addr> */ 852: .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 86 87 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 88 .ascii "file_locempty_resolvable\0" /* DW_AT_name */ 89 .byte 0 /* DW_AT_location */ 90 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 91 92 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 93 .ascii "file_locempty_unresolvable\0" /* DW_AT_name */ 94 .byte 0 /* DW_AT_location */ 95 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 96 97 .uleb128 5 /* Abbrev: DW_TAG_variable (bare) */ 98 .ascii "file_locno_resolvable\0" /* DW_AT_name */ 99 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 100 101 .uleb128 5 /* Abbrev: DW_TAG_variable (bare) */ 102 .ascii "file_locno_unresolvable\0" /* DW_AT_name */ 103 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 104 105 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 106 .ascii "file_extern_locaddr_resolvable\0" /* DW_AT_name */ 107 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 108 .byte 2f - 1f /* DW_AT_location */ 1091: .byte 3 /* DW_OP_addr */ 110 .4byte resolvable /* <addr> */ 1112: .byte 1 /* DW_AT_external */ 112 113 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 114 .ascii "file_extern_locaddr_unresolvable\0" /* DW_AT_name */ 115 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 116 .byte 2f - 1f /* DW_AT_location */ 1171: .byte 3 /* DW_OP_addr */ 118 .4byte resolvable /* <addr> */ 1192: .byte 1 /* DW_AT_external */ 120 121 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 122 .ascii "file_extern_locempty_resolvable\0" /* DW_AT_name */ 123 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 124 .byte 0 /* DW_AT_location */ 125 .byte 1 /* DW_AT_external */ 126 127 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 128 .ascii "file_extern_locempty_unresolvable\0" /* DW_AT_name */ 129 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 130 .byte 0 /* DW_AT_location */ 131 .byte 1 /* DW_AT_external */ 132 133 .uleb128 4 /* Abbrev: DW_TAG_variable (extern) */ 134 .ascii "file_extern_locno_resolvable\0" /* DW_AT_name */ 135 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 136 .byte 1 /* DW_AT_external */ 137 138 .uleb128 4 /* Abbrev: DW_TAG_variable (extern) */ 139 .ascii "file_extern_locno_unresolvable\0" /* DW_AT_name */ 140 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 141 .byte 1 /* DW_AT_external */ 142 143 /* main */ 144 .uleb128 6 /* Abbrev: DW_TAG_subprogram */ 145 .byte 1 /* DW_AT_decl_file */ 146 .byte 2 /* DW_AT_decl_line */ 147 .ascii "main\0" /* DW_AT_name */ 148 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 149 .4byte cu_text_start /* DW_AT_low_pc */ 150 .4byte cu_text_end /* DW_AT_high_pc */ 151 152 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 153 .ascii "main_local_locaddr_resolvable\0" /* DW_AT_name */ 154 .byte 2f - 1f /* DW_AT_location */ 1551: .byte 3 /* DW_OP_addr */ 156 .4byte resolvable /* <addr> */ 1572: .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 158 159 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 160 .ascii "main_local_locaddr_unresolvable\0" /* DW_AT_name */ 161 .byte 2f - 1f /* DW_AT_location */ 1621: .byte 3 /* DW_OP_addr */ 163 .4byte resolvable /* <addr> */ 1642: .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 165 166 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 167 .ascii "main_local_locempty_resolvable\0" /* DW_AT_name */ 168 .byte 0 /* DW_AT_location */ 169 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 170 171 .uleb128 7 /* Abbrev: DW_TAG_variable (location) */ 172 .ascii "main_local_locempty_unresolvable\0" /* DW_AT_name */ 173 .byte 0 /* DW_AT_location */ 174 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 175 176 .uleb128 5 /* Abbrev: DW_TAG_variable (bare) */ 177 .ascii "main_local_locno_resolvable\0" /* DW_AT_name */ 178 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 179 180 .uleb128 5 /* Abbrev: DW_TAG_variable (bare) */ 181 .ascii "main_local_locno_unresolvable\0" /* DW_AT_name */ 182 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 183 184 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 185 .ascii "main_extern_locaddr_resolvable\0" /* DW_AT_name */ 186 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 187 .byte 2f - 1f /* DW_AT_location */ 1881: .byte 3 /* DW_OP_addr */ 189 .4byte resolvable /* <addr> */ 1902: .byte 1 /* DW_AT_external */ 191 192 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 193 .ascii "main_extern_locaddr_unresolvable\0" /* DW_AT_name */ 194 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 195 .byte 2f - 1f /* DW_AT_location */ 1961: .byte 3 /* DW_OP_addr */ 197 .4byte resolvable /* <addr> */ 1982: .byte 1 /* DW_AT_external */ 199 200 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 201 .ascii "main_extern_locempty_resolvable\0" /* DW_AT_name */ 202 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 203 .byte 0 /* DW_AT_location */ 204 .byte 1 /* DW_AT_external */ 205 206 .uleb128 8 /* Abbrev: DW_TAG_variable (location+extern) */ 207 .ascii "main_extern_locempty_unresolvable\0" /* DW_AT_name */ 208 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 209 .byte 0 /* DW_AT_location */ 210 .byte 1 /* DW_AT_external */ 211 212 .uleb128 4 /* Abbrev: DW_TAG_variable (extern) */ 213 .ascii "main_extern_locno_resolvable\0" /* DW_AT_name */ 214 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 215 .byte 1 /* DW_AT_external */ 216 217 .uleb128 4 /* Abbrev: DW_TAG_variable (extern) */ 218 .ascii "main_extern_locno_unresolvable\0" /* DW_AT_name */ 219 .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ 220 .byte 1 /* DW_AT_external */ 221 222 .byte 0 /* End of children of main */ 223 224 .byte 0 /* End of children of CU */ 225 226.Lcu1_end: 227 228/* Abbrev table */ 229 .section .debug_abbrev 230.Labbrev1_begin: 231 .uleb128 1 /* Abbrev code */ 232 .uleb128 0x11 /* DW_TAG_compile_unit */ 233 .byte 1 /* has_children */ 234 .uleb128 0x12 /* DW_AT_high_pc */ 235 .uleb128 0x1 /* DW_FORM_addr */ 236 .uleb128 0x11 /* DW_AT_low_pc */ 237 .uleb128 0x1 /* DW_FORM_addr */ 238 .uleb128 0x3 /* DW_AT_name */ 239 .uleb128 0x8 /* DW_FORM_string */ 240 .uleb128 0x25 /* DW_AT_producer */ 241 .uleb128 0x8 /* DW_FORM_string */ 242 .uleb128 0x13 /* DW_AT_language */ 243 .uleb128 0xb /* DW_FORM_data1 */ 244 .byte 0x0 /* Terminator */ 245 .byte 0x0 /* Terminator */ 246 247 .uleb128 3 /* Abbrev code */ 248 .uleb128 0x24 /* DW_TAG_base_type */ 249 .byte 0 /* has_children */ 250 .uleb128 0x3 /* DW_AT_name */ 251 .uleb128 0x8 /* DW_FORM_string */ 252 .uleb128 0xb /* DW_AT_byte_size */ 253 .uleb128 0xb /* DW_FORM_data1 */ 254 .uleb128 0x3e /* DW_AT_encoding */ 255 .uleb128 0xb /* DW_FORM_data1 */ 256 .byte 0x0 /* Terminator */ 257 .byte 0x0 /* Terminator */ 258 259 .uleb128 4 /* Abbrev code (extern) */ 260 .uleb128 0x34 /* DW_TAG_variable */ 261 .byte 0 /* has_children */ 262 .uleb128 0x3 /* DW_AT_name */ 263 .uleb128 0x8 /* DW_FORM_string */ 264 .uleb128 0x49 /* DW_AT_type */ 265 .uleb128 0x13 /* DW_FORM_ref4 */ 266 .uleb128 0x3f /* DW_AT_external */ 267 .uleb128 0xc /* DW_FORM_flag */ 268 .byte 0x0 /* Terminator */ 269 .byte 0x0 /* Terminator */ 270 271 .uleb128 5 /* Abbrev code (bare) */ 272 .uleb128 0x34 /* DW_TAG_variable */ 273 .byte 0 /* has_children */ 274 .uleb128 0x3 /* DW_AT_name */ 275 .uleb128 0x8 /* DW_FORM_string */ 276 .uleb128 0x49 /* DW_AT_type */ 277 .uleb128 0x13 /* DW_FORM_ref4 */ 278 .byte 0x0 /* Terminator */ 279 .byte 0x0 /* Terminator */ 280 281 .uleb128 6 /* Abbrev code */ 282 .uleb128 0x2e /* DW_TAG_subprogram */ 283 .byte 1 /* has_children */ 284 .uleb128 0x3a /* DW_AT_decl_file */ 285 .uleb128 0xb /* DW_FORM_data1 */ 286 .uleb128 0x3b /* DW_AT_decl_line */ 287 .uleb128 0xb /* DW_FORM_data1 */ 288 .uleb128 0x3 /* DW_AT_name */ 289 .uleb128 0x8 /* DW_FORM_string */ 290 .uleb128 0x49 /* DW_AT_type */ 291 .uleb128 0x13 /* DW_FORM_ref4 */ 292 .uleb128 0x11 /* DW_AT_low_pc */ 293 .uleb128 0x1 /* DW_FORM_addr */ 294 .uleb128 0x12 /* DW_AT_high_pc */ 295 .uleb128 0x1 /* DW_FORM_addr */ 296 .byte 0x0 /* Terminator */ 297 .byte 0x0 /* Terminator */ 298 299 .uleb128 7 /* Abbrev code (location) */ 300 .uleb128 0x34 /* DW_TAG_variable */ 301 .byte 0 /* has_children */ 302 .uleb128 0x3 /* DW_AT_name */ 303 .uleb128 0x8 /* DW_FORM_string */ 304 .uleb128 0x2 /* DW_AT_location */ 305 .uleb128 0xa /* DW_FORM_block1 */ 306 .uleb128 0x49 /* DW_AT_type */ 307 .uleb128 0x13 /* DW_FORM_ref4 */ 308 .byte 0x0 /* Terminator */ 309 .byte 0x0 /* Terminator */ 310 311 .uleb128 8 /* Abbrev code (location+extern) */ 312 .uleb128 0x34 /* DW_TAG_variable */ 313 .byte 0 /* has_children */ 314 .uleb128 0x3 /* DW_AT_name */ 315 .uleb128 0x8 /* DW_FORM_string */ 316 .uleb128 0x49 /* DW_AT_type */ 317 .uleb128 0x13 /* DW_FORM_ref4 */ 318 .uleb128 0x2 /* DW_AT_location */ 319 .uleb128 0xa /* DW_FORM_block1 */ 320 .uleb128 0x3f /* DW_AT_external */ 321 .uleb128 0xc /* DW_FORM_flag */ 322 .byte 0x0 /* Terminator */ 323 .byte 0x0 /* Terminator */ 324 325 .byte 0x0 /* Terminator */ 326 .byte 0x0 /* Terminator */ 327