2 Declarations and definitions of codes relating to the DWARF2 and
3 DWARF3 symbolic debugging information formats.
4 Copyright (C
) 1992-2015 Free Software Foundation
, Inc.
6 Written by Gary
Funck (gary@intrepid.com
) The Ada Joint Program
7 Office (AJPO
), Florida State University and Silicon Graphics Inc.
8 provided support for this effort
-- June
21, 1995.
10 Derived from the DWARF
1 implementation written by Ron Guilmette
11 (rfg@netcom.com
), November
1990.
13 This file is part of GCC.
15 GCC is free software
; you can redistribute it and
/or modify it under
16 the terms of the GNU General Public License as published by the Free
17 Software Foundation
; either version
3, or (at your option
) any later
20 GCC is distributed in the hope that it will be useful
, but WITHOUT
21 ANY WARRANTY
; without even the implied warranty of MERCHANTABILITY
22 or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public
23 License for more details.
25 Under Section
7 of GPL version
3, you are granted additional
26 permissions described in the GCC Runtime Library Exception
, version
27 3.1, as published by the Free Software Foundation.
29 You should have received a copy of the GNU General Public License and
30 a copy of the GCC Runtime Library Exception along with this program
;
31 see the files COPYING3 and COPYING.RUNTIME respectively. If not
, see
32 <http
://www.gnu.org
/licenses
/>.
*/
34 /* This file is derived from the DWARF
specification (a public document
)
35 Revision
2.0.0 (July
27, 1993) developed by the UNIX International
36 Programming Languages Special Interest
Group (UI
/PLSIG
) and distributed
37 by UNIX International. Copies of this specification are available from
38 UNIX International
, 20 Waterview Boulevard
, Parsippany
, NJ
, 07054.
40 This file also now contains definitions from the DWARF
3 specification
41 published Dec
20, 2005, available from
: http
://dwarf.freestandards.org.
43 This file also now contains definitions from the DWARF
4
44 specification
, available from
: http
://dwarfstd.org
/ */
46 /* This file declares various DWARF
-related constants using a set of
47 macros which can be redefined by the including file.
49 The macros are in sections. Each section corresponds to a single
50 set of DWARF constants and has a corresponding key. The key is
51 used in all the macro names.
53 The sections are
TAG (for DW_TAG_ constants
), FORM (DW_FORM_
), AT
54 (DW_AT_
), OP (DW_OP_
), ATE (DW_ATE_
), and
CFA (DW_CFA_
).
56 Using TAG as an example
, the following macros may be used for each
59 DW_FIRST_TAG(name
, value
) - Introduce the first DW_TAG constant.
61 DW_TAG(name
, value
) - Define a subsequent constant.
63 DW_TAG_DUP(name
, value
) - Define a subsequent constant whose value
64 is a duplicate of some other constant. Not all keys use the _DUP
65 macro form. If more than one name shares a value
, then the base
66 (DW_TAG
) form will be the preferred name and DW_TAG_DUP will hold
69 DW_END_TAG
- Invoked at the end of the DW_TAG constants.
*/
71 DW_FIRST_TAG (DW_TAG_padding
, 0x00)
72 DW_TAG (DW_TAG_array_type
, 0x01)
73 DW_TAG (DW_TAG_class_type
, 0x02)
74 DW_TAG (DW_TAG_entry_point
, 0x03)
75 DW_TAG (DW_TAG_enumeration_type
, 0x04)
76 DW_TAG (DW_TAG_formal_parameter
, 0x05)
77 DW_TAG (DW_TAG_imported_declaration
, 0x08)
78 DW_TAG (DW_TAG_label
, 0x0a)
79 DW_TAG (DW_TAG_lexical_block
, 0x0b)
80 DW_TAG (DW_TAG_member
, 0x0d)
81 DW_TAG (DW_TAG_pointer_type
, 0x0f)
82 DW_TAG (DW_TAG_reference_type
, 0x10)
83 DW_TAG (DW_TAG_compile_unit
, 0x11)
84 DW_TAG (DW_TAG_string_type
, 0x12)
85 DW_TAG (DW_TAG_structure_type
, 0x13)
86 DW_TAG (DW_TAG_subroutine_type
, 0x15)
87 DW_TAG (DW_TAG_typedef
, 0x16)
88 DW_TAG (DW_TAG_union_type
, 0x17)
89 DW_TAG (DW_TAG_unspecified_parameters
, 0x18)
90 DW_TAG (DW_TAG_variant
, 0x19)
91 DW_TAG (DW_TAG_common_block
, 0x1a)
92 DW_TAG (DW_TAG_common_inclusion
, 0x1b)
93 DW_TAG (DW_TAG_inheritance
, 0x1c)
94 DW_TAG (DW_TAG_inlined_subroutine
, 0x1d)
95 DW_TAG (DW_TAG_module
, 0x1e)
96 DW_TAG (DW_TAG_ptr_to_member_type
, 0x1f)
97 DW_TAG (DW_TAG_set_type
, 0x20)
98 DW_TAG (DW_TAG_subrange_type
, 0x21)
99 DW_TAG (DW_TAG_with_stmt
, 0x22)
100 DW_TAG (DW_TAG_access_declaration
, 0x23)
101 DW_TAG (DW_TAG_base_type
, 0x24)
102 DW_TAG (DW_TAG_catch_block
, 0x25)
103 DW_TAG (DW_TAG_const_type
, 0x26)
104 DW_TAG (DW_TAG_constant
, 0x27)
105 DW_TAG (DW_TAG_enumerator
, 0x28)
106 DW_TAG (DW_TAG_file_type
, 0x29)
107 DW_TAG (DW_TAG_friend
, 0x2a)
108 DW_TAG (DW_TAG_namelist
, 0x2b)
109 DW_TAG (DW_TAG_namelist_item
, 0x2c)
110 DW_TAG (DW_TAG_packed_type
, 0x2d)
111 DW_TAG (DW_TAG_subprogram
, 0x2e)
112 DW_TAG (DW_TAG_template_type_param
, 0x2f)
113 DW_TAG (DW_TAG_template_value_param
, 0x30)
114 DW_TAG (DW_TAG_thrown_type
, 0x31)
115 DW_TAG (DW_TAG_try_block
, 0x32)
116 DW_TAG (DW_TAG_variant_part
, 0x33)
117 DW_TAG (DW_TAG_variable
, 0x34)
118 DW_TAG (DW_TAG_volatile_type
, 0x35)
120 DW_TAG (DW_TAG_dwarf_procedure
, 0x36)
121 DW_TAG (DW_TAG_restrict_type
, 0x37)
122 DW_TAG (DW_TAG_interface_type
, 0x38)
123 DW_TAG (DW_TAG_namespace
, 0x39)
124 DW_TAG (DW_TAG_imported_module
, 0x3a)
125 DW_TAG (DW_TAG_unspecified_type
, 0x3b)
126 DW_TAG (DW_TAG_partial_unit
, 0x3c)
127 DW_TAG (DW_TAG_imported_unit
, 0x3d)
128 DW_TAG (DW_TAG_condition
, 0x3f)
129 DW_TAG (DW_TAG_shared_type
, 0x40)
131 DW_TAG (DW_TAG_type_unit
, 0x41)
132 DW_TAG (DW_TAG_rvalue_reference_type
, 0x42)
133 DW_TAG (DW_TAG_template_alias
, 0x43)
135 DW_TAG (DW_TAG_coarray_type
, 0x44)
136 DW_TAG (DW_TAG_generic_subrange
, 0x45)
137 DW_TAG (DW_TAG_dynamic_type
, 0x46)
138 DW_TAG (DW_TAG_atomic_type
, 0x47)
139 DW_TAG (DW_TAG_call_site
, 0x48)
140 DW_TAG (DW_TAG_call_site_parameter
, 0x49)
141 DW_TAG (DW_TAG_skeleton_unit
, 0x4a)
142 DW_TAG (DW_TAG_immutable_type
, 0x4b)
144 DW_TAG_DUP (DW_TAG_lo_user
, 0x4080)
145 DW_TAG_DUP (DW_TAG_hi_user
, 0xffff)
147 /* SGI
/MIPS Extensions.
*/
148 DW_TAG (DW_TAG_MIPS_loop
, 0x4081)
150 /* HP extensions. See
: ftp
://ftp.hp.com
/pub
/lang
/tools
/WDB
/wdb
-4.0.tar.gz .
*/
151 DW_TAG (DW_TAG_HP_array_descriptor
, 0x4090)
152 DW_TAG (DW_TAG_HP_Bliss_field
, 0x4091)
153 DW_TAG (DW_TAG_HP_Bliss_field_set
, 0x4092)
155 /* GNU extensions.
*/
156 DW_TAG (DW_TAG_format_label
, 0x4101) /* For FORTRAN
77 and Fortran
90.
*/
157 DW_TAG (DW_TAG_function_template
, 0x4102) /* For C
++.
*/
158 DW_TAG (DW_TAG_class_template
, 0x4103) /* For C
++.
*/
159 DW_TAG (DW_TAG_GNU_BINCL
, 0x4104)
160 DW_TAG (DW_TAG_GNU_EINCL
, 0x4105)
161 /* Template template parameter.
162 See http
://gcc.gnu.org
/wiki
/TemplateParmsDwarf .
*/
163 DW_TAG (DW_TAG_GNU_template_template_param
, 0x4106)
165 /* Template parameter pack extension
, specified at
166 http
://wiki.dwarfstd.org
/index.php?title
=C
%2B
%2B0x
:_Variadic_templates
167 The values of these two TAGS are in the DW_TAG_GNU_
* space until the tags
168 are properly part of DWARF
5.
*/
169 DW_TAG (DW_TAG_GNU_template_parameter_pack
, 0x4107)
170 DW_TAG (DW_TAG_GNU_formal_parameter_pack
, 0x4108)
171 /* The GNU call site extension
, specified at
172 http
://www.dwarfstd.org
/ShowIssue.php?issue
=100909.2&type
=open .
173 The values of these two TAGS are in the DW_TAG_GNU_
* space until the tags
174 are properly part of DWARF
5.
*/
175 DW_TAG (DW_TAG_GNU_call_site
, 0x4109)
176 DW_TAG (DW_TAG_GNU_call_site_parameter
, 0x410a)
177 /* Extensions for UPC. See
: http
://dwarfstd.org
/doc
/DWARF4.pdf.
*/
178 DW_TAG (DW_TAG_upc_shared_type
, 0x8765)
179 DW_TAG (DW_TAG_upc_strict_type
, 0x8766)
180 DW_TAG (DW_TAG_upc_relaxed_type
, 0x8767)
181 /* PGI (STMicroelectronics
) extensions. No documentation available.
*/
182 DW_TAG (DW_TAG_PGI_kanji_type
, 0xA000)
183 DW_TAG (DW_TAG_PGI_interface_block
, 0xA020)
186 DW_FIRST_FORM (DW_FORM_addr
, 0x01)
187 DW_FORM (DW_FORM_block2
, 0x03)
188 DW_FORM (DW_FORM_block4
, 0x04)
189 DW_FORM (DW_FORM_data2
, 0x05)
190 DW_FORM (DW_FORM_data4
, 0x06)
191 DW_FORM (DW_FORM_data8
, 0x07)
192 DW_FORM (DW_FORM_string
, 0x08)
193 DW_FORM (DW_FORM_block
, 0x09)
194 DW_FORM (DW_FORM_block1
, 0x0a)
195 DW_FORM (DW_FORM_data1
, 0x0b)
196 DW_FORM (DW_FORM_flag
, 0x0c)
197 DW_FORM (DW_FORM_sdata
, 0x0d)
198 DW_FORM (DW_FORM_strp
, 0x0e)
199 DW_FORM (DW_FORM_udata
, 0x0f)
200 DW_FORM (DW_FORM_ref_addr
, 0x10)
201 DW_FORM (DW_FORM_ref1
, 0x11)
202 DW_FORM (DW_FORM_ref2
, 0x12)
203 DW_FORM (DW_FORM_ref4
, 0x13)
204 DW_FORM (DW_FORM_ref8
, 0x14)
205 DW_FORM (DW_FORM_ref_udata
, 0x15)
206 DW_FORM (DW_FORM_indirect
, 0x16)
208 DW_FORM (DW_FORM_sec_offset
, 0x17)
209 DW_FORM (DW_FORM_exprloc
, 0x18)
210 DW_FORM (DW_FORM_flag_present
, 0x19)
211 DW_FORM (DW_FORM_ref_sig8
, 0x20)
213 DW_FORM (DW_FORM_strx
, 0x1a)
214 DW_FORM (DW_FORM_addrx
, 0x1b)
215 DW_FORM (DW_FORM_ref_sup
, 0x1c)
216 DW_FORM (DW_FORM_strp_sup
, 0x1d)
217 DW_FORM (DW_FORM_data16
, 0x1e)
218 DW_FORM (DW_FORM_line_strp
, 0x1f)
219 DW_FORM (DW_FORM_implicit_const
, 0x21)
220 DW_FORM (DW_FORM_loclistx
, 0x22)
221 DW_FORM (DW_FORM_rnglistx
, 0x23)
222 /* Extensions for Fission. See http
://gcc.gnu.org
/wiki
/DebugFission.
*/
223 DW_FORM (DW_FORM_GNU_addr_index
, 0x1f01)
224 DW_FORM (DW_FORM_GNU_str_index
, 0x1f02)
225 /* Extensions for DWZ multifile.
226 See http
://www.dwarfstd.org
/ShowIssue.php?issue
=120604.1&type
=open .
*/
227 DW_FORM (DW_FORM_GNU_ref_alt
, 0x1f20)
228 DW_FORM (DW_FORM_GNU_strp_alt
, 0x1f21)
231 DW_FIRST_AT (DW_AT_sibling
, 0x01)
232 DW_AT (DW_AT_location
, 0x02)
233 DW_AT (DW_AT_name
, 0x03)
234 DW_AT (DW_AT_ordering
, 0x09)
235 DW_AT (DW_AT_subscr_data
, 0x0a)
236 DW_AT (DW_AT_byte_size
, 0x0b)
237 DW_AT (DW_AT_bit_offset
, 0x0c)
238 DW_AT (DW_AT_bit_size
, 0x0d)
239 DW_AT (DW_AT_element_list
, 0x0f)
240 DW_AT (DW_AT_stmt_list
, 0x10)
241 DW_AT (DW_AT_low_pc
, 0x11)
242 DW_AT (DW_AT_high_pc
, 0x12)
243 DW_AT (DW_AT_language
, 0x13)
244 DW_AT (DW_AT_member
, 0x14)
245 DW_AT (DW_AT_discr
, 0x15)
246 DW_AT (DW_AT_discr_value
, 0x16)
247 DW_AT (DW_AT_visibility
, 0x17)
248 DW_AT (DW_AT_import
, 0x18)
249 DW_AT (DW_AT_string_length
, 0x19)
250 DW_AT (DW_AT_common_reference
, 0x1a)
251 DW_AT (DW_AT_comp_dir
, 0x1b)
252 DW_AT (DW_AT_const_value
, 0x1c)
253 DW_AT (DW_AT_containing_type
, 0x1d)
254 DW_AT (DW_AT_default_value
, 0x1e)
255 DW_AT (DW_AT_inline
, 0x20)
256 DW_AT (DW_AT_is_optional
, 0x21)
257 DW_AT (DW_AT_lower_bound
, 0x22)
258 DW_AT (DW_AT_producer
, 0x25)
259 DW_AT (DW_AT_prototyped
, 0x27)
260 DW_AT (DW_AT_return_addr
, 0x2a)
261 DW_AT (DW_AT_start_scope
, 0x2c)
262 DW_AT (DW_AT_bit_stride
, 0x2e)
263 DW_AT (DW_AT_upper_bound
, 0x2f)
264 DW_AT (DW_AT_abstract_origin
, 0x31)
265 DW_AT (DW_AT_accessibility
, 0x32)
266 DW_AT (DW_AT_address_class
, 0x33)
267 DW_AT (DW_AT_artificial
, 0x34)
268 DW_AT (DW_AT_base_types
, 0x35)
269 DW_AT (DW_AT_calling_convention
, 0x36)
270 DW_AT (DW_AT_count
, 0x37)
271 DW_AT (DW_AT_data_member_location
, 0x38)
272 DW_AT (DW_AT_decl_column
, 0x39)
273 DW_AT (DW_AT_decl_file
, 0x3a)
274 DW_AT (DW_AT_decl_line
, 0x3b)
275 DW_AT (DW_AT_declaration
, 0x3c)
276 DW_AT (DW_AT_discr_list
, 0x3d)
277 DW_AT (DW_AT_encoding
, 0x3e)
278 DW_AT (DW_AT_external
, 0x3f)
279 DW_AT (DW_AT_frame_base
, 0x40)
280 DW_AT (DW_AT_friend
, 0x41)
281 DW_AT (DW_AT_identifier_case
, 0x42)
282 DW_AT (DW_AT_macro_info
, 0x43)
283 DW_AT (DW_AT_namelist_items
, 0x44)
284 DW_AT (DW_AT_priority
, 0x45)
285 DW_AT (DW_AT_segment
, 0x46)
286 DW_AT (DW_AT_specification
, 0x47)
287 DW_AT (DW_AT_static_link
, 0x48)
288 DW_AT (DW_AT_type
, 0x49)
289 DW_AT (DW_AT_use_location
, 0x4a)
290 DW_AT (DW_AT_variable_parameter
, 0x4b)
291 DW_AT (DW_AT_virtuality
, 0x4c)
292 DW_AT (DW_AT_vtable_elem_location
, 0x4d)
293 /* DWARF
3 values.
*/
294 DW_AT (DW_AT_allocated
, 0x4e)
295 DW_AT (DW_AT_associated
, 0x4f)
296 DW_AT (DW_AT_data_location
, 0x50)
297 DW_AT (DW_AT_byte_stride
, 0x51)
298 DW_AT (DW_AT_entry_pc
, 0x52)
299 DW_AT (DW_AT_use_UTF8
, 0x53)
300 DW_AT (DW_AT_extension
, 0x54)
301 DW_AT (DW_AT_ranges
, 0x55)
302 DW_AT (DW_AT_trampoline
, 0x56)
303 DW_AT (DW_AT_call_column
, 0x57)
304 DW_AT (DW_AT_call_file
, 0x58)
305 DW_AT (DW_AT_call_line
, 0x59)
306 DW_AT (DW_AT_description
, 0x5a)
307 DW_AT (DW_AT_binary_scale
, 0x5b)
308 DW_AT (DW_AT_decimal_scale
, 0x5c)
309 DW_AT (DW_AT_small
, 0x5d)
310 DW_AT (DW_AT_decimal_sign
, 0x5e)
311 DW_AT (DW_AT_digit_count
, 0x5f)
312 DW_AT (DW_AT_picture_string
, 0x60)
313 DW_AT (DW_AT_mutable
, 0x61)
314 DW_AT (DW_AT_threads_scaled
, 0x62)
315 DW_AT (DW_AT_explicit
, 0x63)
316 DW_AT (DW_AT_object_pointer
, 0x64)
317 DW_AT (DW_AT_endianity
, 0x65)
318 DW_AT (DW_AT_elemental
, 0x66)
319 DW_AT (DW_AT_pure
, 0x67)
320 DW_AT (DW_AT_recursive
, 0x68)
322 DW_AT (DW_AT_signature
, 0x69)
323 DW_AT (DW_AT_main_subprogram
, 0x6a)
324 DW_AT (DW_AT_data_bit_offset
, 0x6b)
325 DW_AT (DW_AT_const_expr
, 0x6c)
326 DW_AT (DW_AT_enum_class
, 0x6d)
327 DW_AT (DW_AT_linkage_name
, 0x6e)
329 DW_AT (DW_AT_string_length_bit_size
, 0x6f)
330 DW_AT (DW_AT_string_length_byte_size
, 0x70)
331 DW_AT (DW_AT_rank
, 0x71)
332 DW_AT (DW_AT_str_offsets_base
, 0x72)
333 DW_AT (DW_AT_addr_base
, 0x73)
334 DW_AT (DW_AT_rnglists_base
, 0x74)
335 DW_AT (DW_AT_dwo_name
, 0x76)
336 DW_AT (DW_AT_reference
, 0x77)
337 DW_AT (DW_AT_rvalue_reference
, 0x78)
338 DW_AT (DW_AT_macros
, 0x79)
339 DW_AT (DW_AT_call_all_calls
, 0x7a)
340 DW_AT (DW_AT_call_all_source_calls
, 0x7b)
341 DW_AT (DW_AT_call_all_tail_calls
, 0x7c)
342 DW_AT (DW_AT_call_return_pc
, 0x7d)
343 DW_AT (DW_AT_call_value
, 0x7e)
344 DW_AT (DW_AT_call_origin
, 0x7f)
345 DW_AT (DW_AT_call_parameter
, 0x80)
346 DW_AT (DW_AT_call_pc
, 0x81)
347 DW_AT (DW_AT_call_tail_call
, 0x82)
348 DW_AT (DW_AT_call_target
, 0x83)
349 DW_AT (DW_AT_call_target_clobbered
, 0x84)
350 DW_AT (DW_AT_call_data_location
, 0x85)
351 DW_AT (DW_AT_call_data_value
, 0x86)
352 DW_AT (DW_AT_noreturn
, 0x87)
353 DW_AT (DW_AT_alignment
, 0x88)
354 DW_AT (DW_AT_export_symbols
, 0x89)
355 DW_AT (DW_AT_deleted
, 0x8a)
356 DW_AT (DW_AT_defaulted
, 0x8b)
357 DW_AT (DW_AT_loclists_base
, 0x8c)
359 DW_AT_DUP (DW_AT_lo_user
, 0x2000) /* Implementation
-defined range start.
*/
360 DW_AT_DUP (DW_AT_hi_user
, 0x3fff) /* Implementation
-defined range end.
*/
362 /* SGI
/MIPS extensions.
*/
363 DW_AT (DW_AT_MIPS_fde
, 0x2001)
364 DW_AT (DW_AT_MIPS_loop_begin
, 0x2002)
365 DW_AT (DW_AT_MIPS_tail_loop_begin
, 0x2003)
366 DW_AT (DW_AT_MIPS_epilog_begin
, 0x2004)
367 DW_AT (DW_AT_MIPS_loop_unroll_factor
, 0x2005)
368 DW_AT (DW_AT_MIPS_software_pipeline_depth
, 0x2006)
369 DW_AT (DW_AT_MIPS_linkage_name
, 0x2007)
370 DW_AT (DW_AT_MIPS_stride
, 0x2008)
371 DW_AT (DW_AT_MIPS_abstract_name
, 0x2009)
372 DW_AT (DW_AT_MIPS_clone_origin
, 0x200a)
373 DW_AT (DW_AT_MIPS_has_inlines
, 0x200b)
375 DW_AT (DW_AT_HP_block_index
, 0x2000)
376 DW_AT_DUP (DW_AT_HP_unmodifiable
, 0x2001) /* Same as DW_AT_MIPS_fde.
*/
377 DW_AT_DUP (DW_AT_HP_prologue
, 0x2005) /* Same as DW_AT_MIPS_loop_unroll.
*/
378 DW_AT_DUP (DW_AT_HP_epilogue
, 0x2008) /* Same as DW_AT_MIPS_stride.
*/
379 DW_AT (DW_AT_HP_actuals_stmt_list
, 0x2010)
380 DW_AT (DW_AT_HP_proc_per_section
, 0x2011)
381 DW_AT (DW_AT_HP_raw_data_ptr
, 0x2012)
382 DW_AT (DW_AT_HP_pass_by_reference
, 0x2013)
383 DW_AT (DW_AT_HP_opt_level
, 0x2014)
384 DW_AT (DW_AT_HP_prof_version_id
, 0x2015)
385 DW_AT (DW_AT_HP_opt_flags
, 0x2016)
386 DW_AT (DW_AT_HP_cold_region_low_pc
, 0x2017)
387 DW_AT (DW_AT_HP_cold_region_high_pc
, 0x2018)
388 DW_AT (DW_AT_HP_all_variables_modifiable
, 0x2019)
389 DW_AT (DW_AT_HP_linkage_name
, 0x201a)
390 DW_AT (DW_AT_HP_prof_flags
, 0x201b) /* In comp unit of procs_info for
-g.
*/
391 DW_AT (DW_AT_HP_unit_name
, 0x201f)
392 DW_AT (DW_AT_HP_unit_size
, 0x2020)
393 DW_AT (DW_AT_HP_widened_byte_size
, 0x2021)
394 DW_AT (DW_AT_HP_definition_points
, 0x2022)
395 DW_AT (DW_AT_HP_default_location
, 0x2023)
396 DW_AT (DW_AT_HP_is_result_param
, 0x2029)
398 /* GNU extensions.
*/
399 DW_AT (DW_AT_sf_names
, 0x2101)
400 DW_AT (DW_AT_src_info
, 0x2102)
401 DW_AT (DW_AT_mac_info
, 0x2103)
402 DW_AT (DW_AT_src_coords
, 0x2104)
403 DW_AT (DW_AT_body_begin
, 0x2105)
404 DW_AT (DW_AT_body_end
, 0x2106)
405 DW_AT (DW_AT_GNU_vector
, 0x2107)
406 /* Thread
-safety annotations.
407 See http
://gcc.gnu.org
/wiki
/ThreadSafetyAnnotation .
*/
408 DW_AT (DW_AT_GNU_guarded_by
, 0x2108)
409 DW_AT (DW_AT_GNU_pt_guarded_by
, 0x2109)
410 DW_AT (DW_AT_GNU_guarded
, 0x210a)
411 DW_AT (DW_AT_GNU_pt_guarded
, 0x210b)
412 DW_AT (DW_AT_GNU_locks_excluded
, 0x210c)
413 DW_AT (DW_AT_GNU_exclusive_locks_required
, 0x210d)
414 DW_AT (DW_AT_GNU_shared_locks_required
, 0x210e)
415 /* One
-definition rule violation detection.
416 See http
://gcc.gnu.org
/wiki
/DwarfSeparateTypeInfo .
*/
417 DW_AT (DW_AT_GNU_odr_signature
, 0x210f)
418 /* Template template argument name.
419 See http
://gcc.gnu.org
/wiki
/TemplateParmsDwarf .
*/
420 DW_AT (DW_AT_GNU_template_name
, 0x2110)
421 /* The GNU call site extension.
422 See http
://www.dwarfstd.org
/ShowIssue.php?issue
=100909.2&type
=open .
*/
423 DW_AT (DW_AT_GNU_call_site_value
, 0x2111)
424 DW_AT (DW_AT_GNU_call_site_data_value
, 0x2112)
425 DW_AT (DW_AT_GNU_call_site_target
, 0x2113)
426 DW_AT (DW_AT_GNU_call_site_target_clobbered
, 0x2114)
427 DW_AT (DW_AT_GNU_tail_call
, 0x2115)
428 DW_AT (DW_AT_GNU_all_tail_call_sites
, 0x2116)
429 DW_AT (DW_AT_GNU_all_call_sites
, 0x2117)
430 DW_AT (DW_AT_GNU_all_source_call_sites
, 0x2118)
431 /* Section offset into .debug_macro section.
*/
432 DW_AT (DW_AT_GNU_macros
, 0x2119)
433 /* Attribute for C
++ deleted special member
functions (= delete
;).
*/
434 DW_AT (DW_AT_GNU_deleted
, 0x211a)
435 /* Extensions for Fission. See http
://gcc.gnu.org
/wiki
/DebugFission.
*/
436 DW_AT (DW_AT_GNU_dwo_name
, 0x2130)
437 DW_AT (DW_AT_GNU_dwo_id
, 0x2131)
438 DW_AT (DW_AT_GNU_ranges_base
, 0x2132)
439 DW_AT (DW_AT_GNU_addr_base
, 0x2133)
440 DW_AT (DW_AT_GNU_pubnames
, 0x2134)
441 DW_AT (DW_AT_GNU_pubtypes
, 0x2135)
442 /* Attribute for discriminator.
443 See http
://gcc.gnu.org
/wiki
/Discriminator
*/
444 DW_AT (DW_AT_GNU_discriminator
, 0x2136)
445 /* VMS extensions.
*/
446 DW_AT (DW_AT_VMS_rtnbeg_pd_address
, 0x2201)
447 /* GNAT extensions.
*/
448 /* GNAT descriptive type.
449 See http
://gcc.gnu.org
/wiki
/DW_AT_GNAT_descriptive_type .
*/
450 DW_AT (DW_AT_use_GNAT_descriptive_type
, 0x2301)
451 DW_AT (DW_AT_GNAT_descriptive_type
, 0x2302)
452 /* Rational constant extension.
453 See https
://gcc.gnu.org
/wiki
/DW_AT_GNU_numerator_denominator .
*/
454 DW_TAG (DW_AT_GNU_numerator
, 0x2303)
455 DW_TAG (DW_AT_GNU_denominator
, 0x2304)
456 /* Biased integer extension.
457 See https
://gcc.gnu.org
/wiki
/DW_AT_GNU_bias .
*/
458 DW_TAG (DW_AT_GNU_bias
, 0x2305)
460 DW_AT (DW_AT_upc_threads_scaled
, 0x3210)
461 /* PGI (STMicroelectronics
) extensions.
*/
462 DW_AT (DW_AT_PGI_lbase
, 0x3a00)
463 DW_AT (DW_AT_PGI_soffset
, 0x3a01)
464 DW_AT (DW_AT_PGI_lstride
, 0x3a02)
465 /* Apple extensions.
*/
466 DW_AT (DW_AT_APPLE_optimized
, 0x3fe1)
467 DW_AT (DW_AT_APPLE_flags
, 0x3fe2)
468 DW_AT (DW_AT_APPLE_isa
, 0x3fe3)
469 DW_AT (DW_AT_APPLE_block
, 0x3fe4)
470 DW_AT (DW_AT_APPLE_major_runtime_vers
, 0x3fe5)
471 DW_AT (DW_AT_APPLE_runtime_class
, 0x3fe6)
472 DW_AT (DW_AT_APPLE_omit_frame_ptr
, 0x3fe7)
473 DW_AT (DW_AT_APPLE_property_name
, 0x3fe8)
474 DW_AT (DW_AT_APPLE_property_getter
, 0x3fe9)
475 DW_AT (DW_AT_APPLE_property_setter
, 0x3fea)
476 DW_AT (DW_AT_APPLE_property_attribute
, 0x3feb)
477 DW_AT (DW_AT_APPLE_objc_complete_type
, 0x3fec)
478 DW_AT (DW_AT_APPLE_property
, 0x3fed)
481 DW_FIRST_OP (DW_OP_addr
, 0x03)
482 DW_OP (DW_OP_deref
, 0x06)
483 DW_OP (DW_OP_const1u
, 0x08)
484 DW_OP (DW_OP_const1s
, 0x09)
485 DW_OP (DW_OP_const2u
, 0x0a)
486 DW_OP (DW_OP_const2s
, 0x0b)
487 DW_OP (DW_OP_const4u
, 0x0c)
488 DW_OP (DW_OP_const4s
, 0x0d)
489 DW_OP (DW_OP_const8u
, 0x0e)
490 DW_OP (DW_OP_const8s
, 0x0f)
491 DW_OP (DW_OP_constu
, 0x10)
492 DW_OP (DW_OP_consts
, 0x11)
493 DW_OP (DW_OP_dup
, 0x12)
494 DW_OP (DW_OP_drop
, 0x13)
495 DW_OP (DW_OP_over
, 0x14)
496 DW_OP (DW_OP_pick
, 0x15)
497 DW_OP (DW_OP_swap
, 0x16)
498 DW_OP (DW_OP_rot
, 0x17)
499 DW_OP (DW_OP_xderef
, 0x18)
500 DW_OP (DW_OP_abs
, 0x19)
501 DW_OP (DW_OP_and
, 0x1a)
502 DW_OP (DW_OP_div
, 0x1b)
503 DW_OP (DW_OP_minus
, 0x1c)
504 DW_OP (DW_OP_mod
, 0x1d)
505 DW_OP (DW_OP_mul
, 0x1e)
506 DW_OP (DW_OP_neg
, 0x1f)
507 DW_OP (DW_OP_not
, 0x20)
508 DW_OP (DW_OP_or
, 0x21)
509 DW_OP (DW_OP_plus
, 0x22)
510 DW_OP (DW_OP_plus_uconst
, 0x23)
511 DW_OP (DW_OP_shl
, 0x24)
512 DW_OP (DW_OP_shr
, 0x25)
513 DW_OP (DW_OP_shra
, 0x26)
514 DW_OP (DW_OP_xor
, 0x27)
515 DW_OP (DW_OP_bra
, 0x28)
516 DW_OP (DW_OP_eq
, 0x29)
517 DW_OP (DW_OP_ge
, 0x2a)
518 DW_OP (DW_OP_gt
, 0x2b)
519 DW_OP (DW_OP_le
, 0x2c)
520 DW_OP (DW_OP_lt
, 0x2d)
521 DW_OP (DW_OP_ne
, 0x2e)
522 DW_OP (DW_OP_skip
, 0x2f)
523 DW_OP (DW_OP_lit0
, 0x30)
524 DW_OP (DW_OP_lit1
, 0x31)
525 DW_OP (DW_OP_lit2
, 0x32)
526 DW_OP (DW_OP_lit3
, 0x33)
527 DW_OP (DW_OP_lit4
, 0x34)
528 DW_OP (DW_OP_lit5
, 0x35)
529 DW_OP (DW_OP_lit6
, 0x36)
530 DW_OP (DW_OP_lit7
, 0x37)
531 DW_OP (DW_OP_lit8
, 0x38)
532 DW_OP (DW_OP_lit9
, 0x39)
533 DW_OP (DW_OP_lit10
, 0x3a)
534 DW_OP (DW_OP_lit11
, 0x3b)
535 DW_OP (DW_OP_lit12
, 0x3c)
536 DW_OP (DW_OP_lit13
, 0x3d)
537 DW_OP (DW_OP_lit14
, 0x3e)
538 DW_OP (DW_OP_lit15
, 0x3f)
539 DW_OP (DW_OP_lit16
, 0x40)
540 DW_OP (DW_OP_lit17
, 0x41)
541 DW_OP (DW_OP_lit18
, 0x42)
542 DW_OP (DW_OP_lit19
, 0x43)
543 DW_OP (DW_OP_lit20
, 0x44)
544 DW_OP (DW_OP_lit21
, 0x45)
545 DW_OP (DW_OP_lit22
, 0x46)
546 DW_OP (DW_OP_lit23
, 0x47)
547 DW_OP (DW_OP_lit24
, 0x48)
548 DW_OP (DW_OP_lit25
, 0x49)
549 DW_OP (DW_OP_lit26
, 0x4a)
550 DW_OP (DW_OP_lit27
, 0x4b)
551 DW_OP (DW_OP_lit28
, 0x4c)
552 DW_OP (DW_OP_lit29
, 0x4d)
553 DW_OP (DW_OP_lit30
, 0x4e)
554 DW_OP (DW_OP_lit31
, 0x4f)
555 DW_OP (DW_OP_reg0
, 0x50)
556 DW_OP (DW_OP_reg1
, 0x51)
557 DW_OP (DW_OP_reg2
, 0x52)
558 DW_OP (DW_OP_reg3
, 0x53)
559 DW_OP (DW_OP_reg4
, 0x54)
560 DW_OP (DW_OP_reg5
, 0x55)
561 DW_OP (DW_OP_reg6
, 0x56)
562 DW_OP (DW_OP_reg7
, 0x57)
563 DW_OP (DW_OP_reg8
, 0x58)
564 DW_OP (DW_OP_reg9
, 0x59)
565 DW_OP (DW_OP_reg10
, 0x5a)
566 DW_OP (DW_OP_reg11
, 0x5b)
567 DW_OP (DW_OP_reg12
, 0x5c)
568 DW_OP (DW_OP_reg13
, 0x5d)
569 DW_OP (DW_OP_reg14
, 0x5e)
570 DW_OP (DW_OP_reg15
, 0x5f)
571 DW_OP (DW_OP_reg16
, 0x60)
572 DW_OP (DW_OP_reg17
, 0x61)
573 DW_OP (DW_OP_reg18
, 0x62)
574 DW_OP (DW_OP_reg19
, 0x63)
575 DW_OP (DW_OP_reg20
, 0x64)
576 DW_OP (DW_OP_reg21
, 0x65)
577 DW_OP (DW_OP_reg22
, 0x66)
578 DW_OP (DW_OP_reg23
, 0x67)
579 DW_OP (DW_OP_reg24
, 0x68)
580 DW_OP (DW_OP_reg25
, 0x69)
581 DW_OP (DW_OP_reg26
, 0x6a)
582 DW_OP (DW_OP_reg27
, 0x6b)
583 DW_OP (DW_OP_reg28
, 0x6c)
584 DW_OP (DW_OP_reg29
, 0x6d)
585 DW_OP (DW_OP_reg30
, 0x6e)
586 DW_OP (DW_OP_reg31
, 0x6f)
587 DW_OP (DW_OP_breg0
, 0x70)
588 DW_OP (DW_OP_breg1
, 0x71)
589 DW_OP (DW_OP_breg2
, 0x72)
590 DW_OP (DW_OP_breg3
, 0x73)
591 DW_OP (DW_OP_breg4
, 0x74)
592 DW_OP (DW_OP_breg5
, 0x75)
593 DW_OP (DW_OP_breg6
, 0x76)
594 DW_OP (DW_OP_breg7
, 0x77)
595 DW_OP (DW_OP_breg8
, 0x78)
596 DW_OP (DW_OP_breg9
, 0x79)
597 DW_OP (DW_OP_breg10
, 0x7a)
598 DW_OP (DW_OP_breg11
, 0x7b)
599 DW_OP (DW_OP_breg12
, 0x7c)
600 DW_OP (DW_OP_breg13
, 0x7d)
601 DW_OP (DW_OP_breg14
, 0x7e)
602 DW_OP (DW_OP_breg15
, 0x7f)
603 DW_OP (DW_OP_breg16
, 0x80)
604 DW_OP (DW_OP_breg17
, 0x81)
605 DW_OP (DW_OP_breg18
, 0x82)
606 DW_OP (DW_OP_breg19
, 0x83)
607 DW_OP (DW_OP_breg20
, 0x84)
608 DW_OP (DW_OP_breg21
, 0x85)
609 DW_OP (DW_OP_breg22
, 0x86)
610 DW_OP (DW_OP_breg23
, 0x87)
611 DW_OP (DW_OP_breg24
, 0x88)
612 DW_OP (DW_OP_breg25
, 0x89)
613 DW_OP (DW_OP_breg26
, 0x8a)
614 DW_OP (DW_OP_breg27
, 0x8b)
615 DW_OP (DW_OP_breg28
, 0x8c)
616 DW_OP (DW_OP_breg29
, 0x8d)
617 DW_OP (DW_OP_breg30
, 0x8e)
618 DW_OP (DW_OP_breg31
, 0x8f)
619 DW_OP (DW_OP_regx
, 0x90)
620 DW_OP (DW_OP_fbreg
, 0x91)
621 DW_OP (DW_OP_bregx
, 0x92)
622 DW_OP (DW_OP_piece
, 0x93)
623 DW_OP (DW_OP_deref_size
, 0x94)
624 DW_OP (DW_OP_xderef_size
, 0x95)
625 DW_OP (DW_OP_nop
, 0x96)
626 /* DWARF
3 extensions.
*/
627 DW_OP (DW_OP_push_object_address
, 0x97)
628 DW_OP (DW_OP_call2
, 0x98)
629 DW_OP (DW_OP_call4
, 0x99)
630 DW_OP (DW_OP_call_ref
, 0x9a)
631 DW_OP (DW_OP_form_tls_address
, 0x9b)
632 DW_OP (DW_OP_call_frame_cfa
, 0x9c)
633 DW_OP (DW_OP_bit_piece
, 0x9d)
635 /* DWARF
4 extensions.
*/
636 DW_OP (DW_OP_implicit_value
, 0x9e)
637 DW_OP (DW_OP_stack_value
, 0x9f)
639 /* DWARF
5 extensions.
*/
640 DW_OP (DW_OP_implicit_pointer
, 0xa0)
641 DW_OP (DW_OP_addrx
, 0xa1)
642 DW_OP (DW_OP_constx
, 0xa2)
643 DW_OP (DW_OP_entry_value
, 0xa3)
644 DW_OP (DW_OP_const_type
, 0xa4)
645 DW_OP (DW_OP_regval_type
, 0xa5)
646 DW_OP (DW_OP_deref_type
, 0xa6)
647 DW_OP (DW_OP_xderef_type
, 0xa7)
648 DW_OP (DW_OP_convert
, 0xa8)
649 DW_OP (DW_OP_reinterpret
, 0xa9)
651 DW_OP_DUP (DW_OP_lo_user
, 0xe0) /* Implementation
-defined range start.
*/
652 DW_OP_DUP (DW_OP_hi_user
, 0xff) /* Implementation
-defined range end.
*/
654 /* GNU extensions.
*/
655 DW_OP (DW_OP_GNU_push_tls_address
, 0xe0)
656 /* The following is for marking variables that are uninitialized.
*/
657 DW_OP (DW_OP_GNU_uninit
, 0xf0)
658 DW_OP (DW_OP_GNU_encoded_addr
, 0xf1)
659 /* The GNU implicit pointer extension.
660 See http
://www.dwarfstd.org
/ShowIssue.php?issue
=100831.1&type
=open .
*/
661 DW_OP (DW_OP_GNU_implicit_pointer
, 0xf2)
662 /* The GNU entry value extension.
663 See http
://www.dwarfstd.org
/ShowIssue.php?issue
=100909.1&type
=open .
*/
664 DW_OP (DW_OP_GNU_entry_value
, 0xf3)
665 /* The GNU typed stack extension.
666 See http
://www.dwarfstd.org
/doc
/040408.1.html .
*/
667 DW_OP (DW_OP_GNU_const_type
, 0xf4)
668 DW_OP (DW_OP_GNU_regval_type
, 0xf5)
669 DW_OP (DW_OP_GNU_deref_type
, 0xf6)
670 DW_OP (DW_OP_GNU_convert
, 0xf7)
671 DW_OP (DW_OP_GNU_reinterpret
, 0xf9)
672 /* The GNU parameter ref extension.
*/
673 DW_OP (DW_OP_GNU_parameter_ref
, 0xfa)
674 /* Extensions for Fission. See http
://gcc.gnu.org
/wiki
/DebugFission.
*/
675 DW_OP (DW_OP_GNU_addr_index
, 0xfb)
676 DW_OP (DW_OP_GNU_const_index
, 0xfc)
678 DW_OP_DUP (DW_OP_HP_unknown
, 0xe0) /* Ouch
, the same as GNU_push_tls_address.
*/
679 DW_OP (DW_OP_HP_is_value
, 0xe1)
680 DW_OP (DW_OP_HP_fltconst4
, 0xe2)
681 DW_OP (DW_OP_HP_fltconst8
, 0xe3)
682 DW_OP (DW_OP_HP_mod_range
, 0xe4)
683 DW_OP (DW_OP_HP_unmod_range
, 0xe5)
684 DW_OP (DW_OP_HP_tls
, 0xe6)
685 /* PGI (STMicroelectronics
) extensions.
*/
686 DW_OP (DW_OP_PGI_omp_thread_num
, 0xf8)
689 DW_FIRST_ATE (DW_ATE_void
, 0x0)
690 DW_ATE (DW_ATE_address
, 0x1)
691 DW_ATE (DW_ATE_boolean
, 0x2)
692 DW_ATE (DW_ATE_complex_float
, 0x3)
693 DW_ATE (DW_ATE_float
, 0x4)
694 DW_ATE (DW_ATE_signed
, 0x5)
695 DW_ATE (DW_ATE_signed_char
, 0x6)
696 DW_ATE (DW_ATE_unsigned
, 0x7)
697 DW_ATE (DW_ATE_unsigned_char
, 0x8)
699 DW_ATE (DW_ATE_imaginary_float
, 0x9)
700 DW_ATE (DW_ATE_packed_decimal
, 0xa)
701 DW_ATE (DW_ATE_numeric_string
, 0xb)
702 DW_ATE (DW_ATE_edited
, 0xc)
703 DW_ATE (DW_ATE_signed_fixed
, 0xd)
704 DW_ATE (DW_ATE_unsigned_fixed
, 0xe)
705 DW_ATE (DW_ATE_decimal_float
, 0xf)
707 DW_ATE (DW_ATE_UTF
, 0x10)
709 DW_ATE (DW_ATE_UCS
, 0x11)
710 DW_ATE (DW_ATE_ASCII
, 0x12)
712 DW_ATE_DUP (DW_ATE_lo_user
, 0x80)
713 DW_ATE_DUP (DW_ATE_hi_user
, 0xff)
716 DW_ATE (DW_ATE_HP_float80
, 0x80) /* Floating
-point (80 bit
).
*/
717 DW_ATE (DW_ATE_HP_complex_float80
, 0x81) /* Complex floating
-point (80 bit
).
*/
718 DW_ATE (DW_ATE_HP_float128
, 0x82) /* Floating
-point (128 bit
).
*/
719 DW_ATE (DW_ATE_HP_complex_float128
, 0x83) /* Complex
fp (128 bit
).
*/
720 DW_ATE (DW_ATE_HP_floathpintel
, 0x84) /* Floating
-point (82 bit IA64
).
*/
721 DW_ATE (DW_ATE_HP_imaginary_float80
, 0x85)
722 DW_ATE (DW_ATE_HP_imaginary_float128
, 0x86)
723 DW_ATE (DW_ATE_HP_VAX_float
, 0x88) /* F or G floating.
*/
724 DW_ATE (DW_ATE_HP_VAX_float_d
, 0x89) /* D floating.
*/
725 DW_ATE (DW_ATE_HP_packed_decimal
, 0x8a) /* Cobol.
*/
726 DW_ATE (DW_ATE_HP_zoned_decimal
, 0x8b) /* Cobol.
*/
727 DW_ATE (DW_ATE_HP_edited
, 0x8c) /* Cobol.
*/
728 DW_ATE (DW_ATE_HP_signed_fixed
, 0x8d) /* Cobol.
*/
729 DW_ATE (DW_ATE_HP_unsigned_fixed
, 0x8e) /* Cobol.
*/
730 DW_ATE (DW_ATE_HP_VAX_complex_float
, 0x8f) /* F or G floating complex.
*/
731 DW_ATE (DW_ATE_HP_VAX_complex_float_d
, 0x90) /* D floating complex.
*/
735 DW_FIRST_CFA (DW_CFA_advance_loc
, 0x40)
736 DW_CFA (DW_CFA_offset
, 0x80)
737 DW_CFA (DW_CFA_restore
, 0xc0)
738 DW_CFA (DW_CFA_nop
, 0x00)
739 DW_CFA (DW_CFA_set_loc
, 0x01)
740 DW_CFA (DW_CFA_advance_loc1
, 0x02)
741 DW_CFA (DW_CFA_advance_loc2
, 0x03)
742 DW_CFA (DW_CFA_advance_loc4
, 0x04)
743 DW_CFA (DW_CFA_offset_extended
, 0x05)
744 DW_CFA (DW_CFA_restore_extended
, 0x06)
745 DW_CFA (DW_CFA_undefined
, 0x07)
746 DW_CFA (DW_CFA_same_value
, 0x08)
747 DW_CFA (DW_CFA_register
, 0x09)
748 DW_CFA (DW_CFA_remember_state
, 0x0a)
749 DW_CFA (DW_CFA_restore_state
, 0x0b)
750 DW_CFA (DW_CFA_def_cfa
, 0x0c)
751 DW_CFA (DW_CFA_def_cfa_register
, 0x0d)
752 DW_CFA (DW_CFA_def_cfa_offset
, 0x0e)
754 DW_CFA (DW_CFA_def_cfa_expression
, 0x0f)
755 DW_CFA (DW_CFA_expression
, 0x10)
756 DW_CFA (DW_CFA_offset_extended_sf
, 0x11)
757 DW_CFA (DW_CFA_def_cfa_sf
, 0x12)
758 DW_CFA (DW_CFA_def_cfa_offset_sf
, 0x13)
759 DW_CFA (DW_CFA_val_offset
, 0x14)
760 DW_CFA (DW_CFA_val_offset_sf
, 0x15)
761 DW_CFA (DW_CFA_val_expression
, 0x16)
763 DW_CFA (DW_CFA_lo_user
, 0x1c)
764 DW_CFA (DW_CFA_hi_user
, 0x3f)
766 /* SGI
/MIPS specific.
*/
767 DW_CFA (DW_CFA_MIPS_advance_loc8
, 0x1d)
768 /* GNU extensions.
*/
769 DW_CFA (DW_CFA_GNU_window_save
, 0x2d)
770 DW_CFA (DW_CFA_GNU_args_size
, 0x2e)
771 DW_CFA (DW_CFA_GNU_negative_offset_extended
, 0x2f)