1/* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2008-2024 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/* Debug information */ 19 20 .section .debug_info 21.Lcu1_begin: 22 .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */ 23.Lcu1_start: 24 .2byte 2 /* DWARF version number */ 25 .4byte .Ldebug_abbrev0 /* Offset Into Abbrev. Section */ 26 .byte 4 /* Pointer Size (in bytes) */ 27 28 /* CU die */ 29 .uleb128 1 /* Abbrev: DW_TAG_compile_unit */ 30 .4byte .Lproducer /* DW_AT_producer */ 31 /* Use C++ to exploit a bug in parsing DW_AT_name "". */ 32 .byte 4 /* DW_AT_language (C++) - */ 33 34.Larray_type: 35 .uleb128 2 /* Abbrev: DW_TAG_array_type */ 36 .4byte .Lchar_type-.Lcu1_begin /* DW_AT_type */ 37 38 .uleb128 3 /* Abbrev: DW_TAG_subrange_type */ 39 .4byte .Luint_type-.Lcu1_begin /* DW_AT_type */ 40 .byte 0xd /* DW_AT_upper_bound */ 41 .byte 0 /* End of children of die */ 42 43.Luint_type: 44 .uleb128 4 /* Abbrev: DW_TAG_base_type */ 45 .4byte .Luint_str /* DW_AT_name */ 46 .byte 4 /* DW_AT_byte_size */ 47 .byte 7 /* DW_AT_encoding */ 48 49.Lchar_type: 50 .uleb128 4 /* Abbrev: DW_TAG_base_type */ 51 .4byte .Lchar_str /* DW_AT_name */ 52 .byte 1 /* DW_AT_byte_size */ 53 .byte 6 /* DW_AT_encoding */ 54 55 .uleb128 5 /* Abbrev: DW_TAG_variable DW_FORM_strp */ 56 .4byte .Lvarname /* DW_AT_name */ 57 .4byte .Lconst_type-.Lcu1_begin/* DW_AT_type */ 58 .4byte .Lvarcontents /* DW_AT_const_value */ 59 .byte 1 /* DW_AT_external */ 60 61 .uleb128 6 /* Abbrev: DW_TAG_variable DW_FORM_string */ 62 .string "a_string2" /* DW_AT_name */ 63 .4byte .Lconst_type-.Lcu1_begin/* DW_AT_type */ 64 .string "hello world2\n" /* DW_AT_const_value */ 65 .byte 1 /* DW_AT_external */ 66 67.Lconst_type: 68 .uleb128 7 /* Abbrev: DW_TAG_const_type */ 69 .4byte .Larray_type-.Lcu1_begin/* DW_AT_type */ 70 71 .uleb128 8 /* Abbrev: DW_TAG_variable (name "") */ 72 .4byte .Lemptyname /* DW_AT_name */ 73 74 .byte 0 /* End of children of CU */ 75.Lcu1_end: 76 77 .section .debug_abbrev 78.Ldebug_abbrev0: 79 .uleb128 1 /* Abbrev code */ 80 .uleb128 0x11 /* DW_TAG_compile_unit */ 81 .byte 0x1 /* has_children */ 82 .uleb128 0x25 /* DW_AT_producer */ 83 .uleb128 0xe /* DW_FORM_strp */ 84 .uleb128 0x13 /* DW_AT_language */ 85 .uleb128 0xb /* DW_FORM_data1 */ 86 .byte 0x0 /* Terminator */ 87 .byte 0x0 /* Terminator */ 88 89 .uleb128 2 /* Abbrev code */ 90 .uleb128 0x1 /* TAG: DW_TAG_array_type */ 91 .byte 0x1 /* DW_children_yes */ 92 .uleb128 0x49 /* DW_AT_type */ 93 .uleb128 0x13 /* DW_FORM_ref4 */ 94 .byte 0x0 /* Terminator */ 95 .byte 0x0 /* Terminator */ 96 97 .uleb128 3 /* Abbrev code */ 98 .uleb128 0x21 /* DW_TAG_subrange_type */ 99 .byte 0x0 /* no children */ 100 .uleb128 0x49 /* DW_AT_type */ 101 .uleb128 0x13 /* DW_FORM_ref4 */ 102 .uleb128 0x2f /* DW_AT_upper_bound */ 103 .uleb128 0xb /* DW_FORM_data1 */ 104 .byte 0x0 /* Terminator */ 105 .byte 0x0 /* Terminator */ 106 107 .uleb128 4 /* Abbrev code */ 108 .uleb128 0x24 /* DW_TAG_base_type */ 109 .byte 0x0 /* no_children */ 110 .uleb128 0x3 /* DW_AT_name */ 111 .uleb128 0xe /* DW_FORM_strp */ 112 .uleb128 0xb /* DW_AT_byte_size */ 113 .uleb128 0xb /* DW_FORM_data1 */ 114 .uleb128 0x3e /* DW_AT_encoding */ 115 .uleb128 0xb /* DW_FORM_data1 */ 116 .byte 0x0 /* Terminator */ 117 .byte 0x0 /* Terminator */ 118 119 .uleb128 5 /* Abbrev code */ 120 .uleb128 0x34 /* DW_TAG_variable */ 121 .byte 0x0 /* no_children */ 122 .uleb128 0x3 /* DW_AT_name */ 123 .uleb128 0xe /* DW_FORM_strp */ 124 .uleb128 0x49 /* DW_AT_type */ 125 .uleb128 0x13 /* DW_FORM_ref4 */ 126 .uleb128 0x1c /* DW_AT_const_value */ 127 .uleb128 0xe /* DW_FORM_strp */ 128 .uleb128 0x3f /* DW_AT_external */ 129 .uleb128 0xc /* DW_FORM_flag */ 130 .byte 0x0 /* Terminator */ 131 .byte 0x0 /* Terminator */ 132 133 .uleb128 6 /* Abbrev code */ 134 .uleb128 0x34 /* DW_TAG_variable */ 135 .byte 0x0 /* no_children */ 136 .uleb128 0x3 /* DW_AT_name */ 137 .uleb128 0x8 /* DW_FORM_string */ 138 .uleb128 0x49 /* DW_AT_type */ 139 .uleb128 0x13 /* DW_FORM_ref4 */ 140 .uleb128 0x1c /* DW_AT_const_value */ 141 .uleb128 0x8 /* DW_FORM_string */ 142 .uleb128 0x3f /* DW_AT_external */ 143 .uleb128 0xc /* DW_FORM_flag */ 144 .byte 0x0 /* Terminator */ 145 .byte 0x0 /* Terminator */ 146 147 .uleb128 7 /* Abbrev code */ 148 .uleb128 0x26 /* DW_TAG_const_type */ 149 .byte 0x0 /* DW_children_no */ 150 .uleb128 0x49 /* DW_AT_type */ 151 .uleb128 0x13 /* DW_FORM_ref4 */ 152 .byte 0x0 /* Terminator */ 153 .byte 0x0 /* Terminator */ 154 155 .uleb128 8 /* Abbrev code */ 156 .uleb128 0x34 /* DW_TAG_variable */ 157 .byte 0x0 /* DW_children_no */ 158 .uleb128 0x3 /* DW_AT_name */ 159 .uleb128 0xe /* DW_FORM_strp */ 160 .byte 0x0 /* Terminator */ 161 .byte 0x0 /* Terminator */ 162 163 .byte 0x0 /* Terminator */ 164 165/* String table */ 166 .section .debug_str 167.Lproducer: 168 .string "GNU C 3.3.3" 169.Lchar_str: 170 .string "char" 171.Luint_str: 172 .string "unsigned int" 173.Lvarname: 174 .string "a_string" 175.Lvarcontents: 176 .string "hello world!\n" 177.Lemptyname: 178 .string "" 179#ifdef __arm__ 180 .section .note.GNU-stack,"",%progbits 181#else 182 .section .note.GNU-stack,"",@progbits 183#endif 184