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