Subversion Repositories Kolibri OS

Rev

Rev 5191 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5191 serge 1
/* -*- c -*-
2
   Declarations and definitions of codes relating to the DWARF2 and
3
   DWARF3 symbolic debugging information formats.
6324 serge 4
   Copyright (C) 1992-2015 Free Software Foundation, Inc.
5191 serge 5
 
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.
9
 
10
   Derived from the DWARF 1 implementation written by Ron Guilmette
11
   (rfg@netcom.com), November 1990.
12
 
13
   This file is part of GCC.
14
 
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
18
   version.
19
 
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.
24
 
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.
28
 
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
   .  */
33
 
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.
39
 
40
   This file also now contains definitions from the DWARF 3 specification
41
   published Dec 20, 2005, available from: http://dwarf.freestandards.org.
42
 
43
   This file also now contains definitions from the DWARF 4
44
   specification, available from: http://dwarfstd.org/ */
45
 
46
/* This file declares various DWARF-related constants using a set of
47
   macros which can be redefined by the including file.
48
 
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.
52
 
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_).
55
 
56
   Using TAG as an example, the following macros may be used for each
57
   key:
58
 
59
   DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
60
 
61
   DW_TAG(name, value) - Define a subsequent constant.
62
 
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
67
   any alternate names.
68
 
69
   DW_END_TAG - Invoked at the end of the DW_TAG constants.  */
70
 
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)
119
/* DWARF 3.  */
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)
130
/* DWARF 4.  */
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)
6324 serge 134
/* DWARF 5.  */
135
DW_TAG (DW_TAG_atomic_type, 0x47)
5191 serge 136
 
137
DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
138
DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
139
 
140
/* SGI/MIPS Extensions.  */
141
DW_TAG (DW_TAG_MIPS_loop, 0x4081)
142
 
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)
147
 
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)
157
 
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)
177
DW_END_TAG
178
 
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)
200
/* DWARF 4.  */
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)
212
DW_END_FORM
213
 
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)
304
/* DWARF 4.  */
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)
6324 serge 311
/* DWARF 5.  */
312
DW_AT (DW_AT_noreturn, 0x87)
5191 serge 313
 
314
DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start.  */
315
DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end.  */
316
 
317
/* SGI/MIPS extensions.  */
318
DW_AT (DW_AT_MIPS_fde, 0x2001)
319
DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
320
DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
321
DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
322
DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
323
DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
324
DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
325
DW_AT (DW_AT_MIPS_stride, 0x2008)
326
DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
327
DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
328
DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
329
/* HP extensions.  */
330
DW_AT (DW_AT_HP_block_index, 0x2000)
331
DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde.  */
332
DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll.  */
333
DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride.  */
334
DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
335
DW_AT (DW_AT_HP_proc_per_section, 0x2011)
336
DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
337
DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
338
DW_AT (DW_AT_HP_opt_level, 0x2014)
339
DW_AT (DW_AT_HP_prof_version_id, 0x2015)
340
DW_AT (DW_AT_HP_opt_flags, 0x2016)
341
DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
342
DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
343
DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
344
DW_AT (DW_AT_HP_linkage_name, 0x201a)
345
DW_AT (DW_AT_HP_prof_flags, 0x201b)  /* In comp unit of procs_info for -g.  */
346
DW_AT (DW_AT_HP_unit_name, 0x201f)
347
DW_AT (DW_AT_HP_unit_size, 0x2020)
348
DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
349
DW_AT (DW_AT_HP_definition_points, 0x2022)
350
DW_AT (DW_AT_HP_default_location, 0x2023)
351
DW_AT (DW_AT_HP_is_result_param, 0x2029)
352
 
353
/* GNU extensions.  */
354
DW_AT (DW_AT_sf_names, 0x2101)
355
DW_AT (DW_AT_src_info, 0x2102)
356
DW_AT (DW_AT_mac_info, 0x2103)
357
DW_AT (DW_AT_src_coords, 0x2104)
358
DW_AT (DW_AT_body_begin, 0x2105)
359
DW_AT (DW_AT_body_end, 0x2106)
360
DW_AT (DW_AT_GNU_vector, 0x2107)
361
/* Thread-safety annotations.
362
   See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation .  */
363
DW_AT (DW_AT_GNU_guarded_by, 0x2108)
364
DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
365
DW_AT (DW_AT_GNU_guarded, 0x210a)
366
DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
367
DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
368
DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
369
DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
370
/* One-definition rule violation detection.
371
   See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo .  */
372
DW_AT (DW_AT_GNU_odr_signature, 0x210f)
373
/* Template template argument name.
374
   See http://gcc.gnu.org/wiki/TemplateParmsDwarf .  */
375
DW_AT (DW_AT_GNU_template_name, 0x2110)
376
/* The GNU call site extension.
377
   See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .  */
378
DW_AT (DW_AT_GNU_call_site_value, 0x2111)
379
DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
380
DW_AT (DW_AT_GNU_call_site_target, 0x2113)
381
DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
382
DW_AT (DW_AT_GNU_tail_call, 0x2115)
383
DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
384
DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
385
DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
386
/* Section offset into .debug_macro section.  */
387
DW_AT (DW_AT_GNU_macros, 0x2119)
6324 serge 388
/* Attribute for C++ deleted special member functions (= delete;).  */
389
DW_AT (DW_AT_GNU_deleted, 0x211a)
5191 serge 390
/* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
391
DW_AT (DW_AT_GNU_dwo_name, 0x2130)
392
DW_AT (DW_AT_GNU_dwo_id, 0x2131)
393
DW_AT (DW_AT_GNU_ranges_base, 0x2132)
394
DW_AT (DW_AT_GNU_addr_base, 0x2133)
395
DW_AT (DW_AT_GNU_pubnames, 0x2134)
396
DW_AT (DW_AT_GNU_pubtypes, 0x2135)
397
/* Attribute for discriminator.
398
   See http://gcc.gnu.org/wiki/Discriminator  */
399
DW_AT (DW_AT_GNU_discriminator, 0x2136)
400
/* VMS extensions.  */
401
DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
402
/* GNAT extensions.  */
403
/* GNAT descriptive type.
404
   See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type .  */
405
DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
406
DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
6324 serge 407
/* Rational constant extension.
408
   See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator .  */
409
DW_TAG (DW_AT_GNU_numerator, 0x2303)
410
DW_TAG (DW_AT_GNU_denominator, 0x2304)
411
/* Biased integer extension.
412
   See https://gcc.gnu.org/wiki/DW_AT_GNU_bias .  */
413
DW_TAG (DW_AT_GNU_bias, 0x2305)
5191 serge 414
/* UPC extension.  */
415
DW_AT (DW_AT_upc_threads_scaled, 0x3210)
416
/* PGI (STMicroelectronics) extensions.  */
417
DW_AT (DW_AT_PGI_lbase, 0x3a00)
418
DW_AT (DW_AT_PGI_soffset, 0x3a01)
419
DW_AT (DW_AT_PGI_lstride, 0x3a02)
6324 serge 420
/* Apple extensions.  */
421
DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
422
DW_AT (DW_AT_APPLE_flags, 0x3fe2)
423
DW_AT (DW_AT_APPLE_isa, 0x3fe3)
424
DW_AT (DW_AT_APPLE_block, 0x3fe4)
425
DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
426
DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
427
DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
428
DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
429
DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
430
DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
431
DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
432
DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
433
DW_AT (DW_AT_APPLE_property, 0x3fed)
5191 serge 434
DW_END_AT
435
 
436
DW_FIRST_OP (DW_OP_addr, 0x03)
437
DW_OP (DW_OP_deref, 0x06)
438
DW_OP (DW_OP_const1u, 0x08)
439
DW_OP (DW_OP_const1s, 0x09)
440
DW_OP (DW_OP_const2u, 0x0a)
441
DW_OP (DW_OP_const2s, 0x0b)
442
DW_OP (DW_OP_const4u, 0x0c)
443
DW_OP (DW_OP_const4s, 0x0d)
444
DW_OP (DW_OP_const8u, 0x0e)
445
DW_OP (DW_OP_const8s, 0x0f)
446
DW_OP (DW_OP_constu, 0x10)
447
DW_OP (DW_OP_consts, 0x11)
448
DW_OP (DW_OP_dup, 0x12)
449
DW_OP (DW_OP_drop, 0x13)
450
DW_OP (DW_OP_over, 0x14)
451
DW_OP (DW_OP_pick, 0x15)
452
DW_OP (DW_OP_swap, 0x16)
453
DW_OP (DW_OP_rot, 0x17)
454
DW_OP (DW_OP_xderef, 0x18)
455
DW_OP (DW_OP_abs, 0x19)
456
DW_OP (DW_OP_and, 0x1a)
457
DW_OP (DW_OP_div, 0x1b)
458
DW_OP (DW_OP_minus, 0x1c)
459
DW_OP (DW_OP_mod, 0x1d)
460
DW_OP (DW_OP_mul, 0x1e)
461
DW_OP (DW_OP_neg, 0x1f)
462
DW_OP (DW_OP_not, 0x20)
463
DW_OP (DW_OP_or, 0x21)
464
DW_OP (DW_OP_plus, 0x22)
465
DW_OP (DW_OP_plus_uconst, 0x23)
466
DW_OP (DW_OP_shl, 0x24)
467
DW_OP (DW_OP_shr, 0x25)
468
DW_OP (DW_OP_shra, 0x26)
469
DW_OP (DW_OP_xor, 0x27)
470
DW_OP (DW_OP_bra, 0x28)
471
DW_OP (DW_OP_eq, 0x29)
472
DW_OP (DW_OP_ge, 0x2a)
473
DW_OP (DW_OP_gt, 0x2b)
474
DW_OP (DW_OP_le, 0x2c)
475
DW_OP (DW_OP_lt, 0x2d)
476
DW_OP (DW_OP_ne, 0x2e)
477
DW_OP (DW_OP_skip, 0x2f)
478
DW_OP (DW_OP_lit0, 0x30)
479
DW_OP (DW_OP_lit1, 0x31)
480
DW_OP (DW_OP_lit2, 0x32)
481
DW_OP (DW_OP_lit3, 0x33)
482
DW_OP (DW_OP_lit4, 0x34)
483
DW_OP (DW_OP_lit5, 0x35)
484
DW_OP (DW_OP_lit6, 0x36)
485
DW_OP (DW_OP_lit7, 0x37)
486
DW_OP (DW_OP_lit8, 0x38)
487
DW_OP (DW_OP_lit9, 0x39)
488
DW_OP (DW_OP_lit10, 0x3a)
489
DW_OP (DW_OP_lit11, 0x3b)
490
DW_OP (DW_OP_lit12, 0x3c)
491
DW_OP (DW_OP_lit13, 0x3d)
492
DW_OP (DW_OP_lit14, 0x3e)
493
DW_OP (DW_OP_lit15, 0x3f)
494
DW_OP (DW_OP_lit16, 0x40)
495
DW_OP (DW_OP_lit17, 0x41)
496
DW_OP (DW_OP_lit18, 0x42)
497
DW_OP (DW_OP_lit19, 0x43)
498
DW_OP (DW_OP_lit20, 0x44)
499
DW_OP (DW_OP_lit21, 0x45)
500
DW_OP (DW_OP_lit22, 0x46)
501
DW_OP (DW_OP_lit23, 0x47)
502
DW_OP (DW_OP_lit24, 0x48)
503
DW_OP (DW_OP_lit25, 0x49)
504
DW_OP (DW_OP_lit26, 0x4a)
505
DW_OP (DW_OP_lit27, 0x4b)
506
DW_OP (DW_OP_lit28, 0x4c)
507
DW_OP (DW_OP_lit29, 0x4d)
508
DW_OP (DW_OP_lit30, 0x4e)
509
DW_OP (DW_OP_lit31, 0x4f)
510
DW_OP (DW_OP_reg0, 0x50)
511
DW_OP (DW_OP_reg1, 0x51)
512
DW_OP (DW_OP_reg2, 0x52)
513
DW_OP (DW_OP_reg3, 0x53)
514
DW_OP (DW_OP_reg4, 0x54)
515
DW_OP (DW_OP_reg5, 0x55)
516
DW_OP (DW_OP_reg6, 0x56)
517
DW_OP (DW_OP_reg7, 0x57)
518
DW_OP (DW_OP_reg8, 0x58)
519
DW_OP (DW_OP_reg9, 0x59)
520
DW_OP (DW_OP_reg10, 0x5a)
521
DW_OP (DW_OP_reg11, 0x5b)
522
DW_OP (DW_OP_reg12, 0x5c)
523
DW_OP (DW_OP_reg13, 0x5d)
524
DW_OP (DW_OP_reg14, 0x5e)
525
DW_OP (DW_OP_reg15, 0x5f)
526
DW_OP (DW_OP_reg16, 0x60)
527
DW_OP (DW_OP_reg17, 0x61)
528
DW_OP (DW_OP_reg18, 0x62)
529
DW_OP (DW_OP_reg19, 0x63)
530
DW_OP (DW_OP_reg20, 0x64)
531
DW_OP (DW_OP_reg21, 0x65)
532
DW_OP (DW_OP_reg22, 0x66)
533
DW_OP (DW_OP_reg23, 0x67)
534
DW_OP (DW_OP_reg24, 0x68)
535
DW_OP (DW_OP_reg25, 0x69)
536
DW_OP (DW_OP_reg26, 0x6a)
537
DW_OP (DW_OP_reg27, 0x6b)
538
DW_OP (DW_OP_reg28, 0x6c)
539
DW_OP (DW_OP_reg29, 0x6d)
540
DW_OP (DW_OP_reg30, 0x6e)
541
DW_OP (DW_OP_reg31, 0x6f)
542
DW_OP (DW_OP_breg0, 0x70)
543
DW_OP (DW_OP_breg1, 0x71)
544
DW_OP (DW_OP_breg2, 0x72)
545
DW_OP (DW_OP_breg3, 0x73)
546
DW_OP (DW_OP_breg4, 0x74)
547
DW_OP (DW_OP_breg5, 0x75)
548
DW_OP (DW_OP_breg6, 0x76)
549
DW_OP (DW_OP_breg7, 0x77)
550
DW_OP (DW_OP_breg8, 0x78)
551
DW_OP (DW_OP_breg9, 0x79)
552
DW_OP (DW_OP_breg10, 0x7a)
553
DW_OP (DW_OP_breg11, 0x7b)
554
DW_OP (DW_OP_breg12, 0x7c)
555
DW_OP (DW_OP_breg13, 0x7d)
556
DW_OP (DW_OP_breg14, 0x7e)
557
DW_OP (DW_OP_breg15, 0x7f)
558
DW_OP (DW_OP_breg16, 0x80)
559
DW_OP (DW_OP_breg17, 0x81)
560
DW_OP (DW_OP_breg18, 0x82)
561
DW_OP (DW_OP_breg19, 0x83)
562
DW_OP (DW_OP_breg20, 0x84)
563
DW_OP (DW_OP_breg21, 0x85)
564
DW_OP (DW_OP_breg22, 0x86)
565
DW_OP (DW_OP_breg23, 0x87)
566
DW_OP (DW_OP_breg24, 0x88)
567
DW_OP (DW_OP_breg25, 0x89)
568
DW_OP (DW_OP_breg26, 0x8a)
569
DW_OP (DW_OP_breg27, 0x8b)
570
DW_OP (DW_OP_breg28, 0x8c)
571
DW_OP (DW_OP_breg29, 0x8d)
572
DW_OP (DW_OP_breg30, 0x8e)
573
DW_OP (DW_OP_breg31, 0x8f)
574
DW_OP (DW_OP_regx, 0x90)
575
DW_OP (DW_OP_fbreg, 0x91)
576
DW_OP (DW_OP_bregx, 0x92)
577
DW_OP (DW_OP_piece, 0x93)
578
DW_OP (DW_OP_deref_size, 0x94)
579
DW_OP (DW_OP_xderef_size, 0x95)
580
DW_OP (DW_OP_nop, 0x96)
581
/* DWARF 3 extensions.  */
582
DW_OP (DW_OP_push_object_address, 0x97)
583
DW_OP (DW_OP_call2, 0x98)
584
DW_OP (DW_OP_call4, 0x99)
585
DW_OP (DW_OP_call_ref, 0x9a)
586
DW_OP (DW_OP_form_tls_address, 0x9b)
587
DW_OP (DW_OP_call_frame_cfa, 0x9c)
588
DW_OP (DW_OP_bit_piece, 0x9d)
589
 
590
/* DWARF 4 extensions.  */
591
DW_OP (DW_OP_implicit_value, 0x9e)
592
DW_OP (DW_OP_stack_value, 0x9f)
593
 
594
DW_OP_DUP (DW_OP_lo_user, 0xe0)	/* Implementation-defined range start.  */
595
DW_OP_DUP (DW_OP_hi_user, 0xff)	/* Implementation-defined range end.  */
596
 
597
/* GNU extensions.  */
598
DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
599
/* The following is for marking variables that are uninitialized.  */
600
DW_OP (DW_OP_GNU_uninit, 0xf0)
601
DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
602
/* The GNU implicit pointer extension.
603
   See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open .  */
604
DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
605
/* The GNU entry value extension.
606
   See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open .  */
607
DW_OP (DW_OP_GNU_entry_value, 0xf3)
608
/* The GNU typed stack extension.
609
   See http://www.dwarfstd.org/doc/040408.1.html .  */
610
DW_OP (DW_OP_GNU_const_type, 0xf4)
611
DW_OP (DW_OP_GNU_regval_type, 0xf5)
612
DW_OP (DW_OP_GNU_deref_type, 0xf6)
613
DW_OP (DW_OP_GNU_convert, 0xf7)
614
DW_OP (DW_OP_GNU_reinterpret, 0xf9)
615
/* The GNU parameter ref extension.  */
616
DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
617
/* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
618
DW_OP (DW_OP_GNU_addr_index, 0xfb)
619
DW_OP (DW_OP_GNU_const_index, 0xfc)
620
/* HP extensions.  */
621
DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address.  */
622
DW_OP (DW_OP_HP_is_value, 0xe1)
623
DW_OP (DW_OP_HP_fltconst4, 0xe2)
624
DW_OP (DW_OP_HP_fltconst8, 0xe3)
625
DW_OP (DW_OP_HP_mod_range, 0xe4)
626
DW_OP (DW_OP_HP_unmod_range, 0xe5)
627
DW_OP (DW_OP_HP_tls, 0xe6)
628
/* PGI (STMicroelectronics) extensions.  */
629
DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
630
DW_END_OP
631
 
632
DW_FIRST_ATE (DW_ATE_void, 0x0)
633
DW_ATE (DW_ATE_address, 0x1)
634
DW_ATE (DW_ATE_boolean, 0x2)
635
DW_ATE (DW_ATE_complex_float, 0x3)
636
DW_ATE (DW_ATE_float, 0x4)
637
DW_ATE (DW_ATE_signed, 0x5)
638
DW_ATE (DW_ATE_signed_char, 0x6)
639
DW_ATE (DW_ATE_unsigned, 0x7)
640
DW_ATE (DW_ATE_unsigned_char, 0x8)
641
/* DWARF 3.  */
642
DW_ATE (DW_ATE_imaginary_float, 0x9)
643
DW_ATE (DW_ATE_packed_decimal, 0xa)
644
DW_ATE (DW_ATE_numeric_string, 0xb)
645
DW_ATE (DW_ATE_edited, 0xc)
646
DW_ATE (DW_ATE_signed_fixed, 0xd)
647
DW_ATE (DW_ATE_unsigned_fixed, 0xe)
648
DW_ATE (DW_ATE_decimal_float, 0xf)
649
/* DWARF 4.  */
650
DW_ATE (DW_ATE_UTF, 0x10)
651
 
652
DW_ATE_DUP (DW_ATE_lo_user, 0x80)
653
DW_ATE_DUP (DW_ATE_hi_user, 0xff)
654
 
655
/* HP extensions.  */
656
DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit).  */
657
DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit).  */
658
DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit).  */
659
DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit).  */
660
DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64).  */
661
DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
662
DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
663
DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating.  */
664
DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating.  */
665
DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol.  */
666
DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol.  */
667
DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol.  */
668
DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol.  */
669
DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol.  */
670
DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex.  */
671
DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex.  */
672
 
673
DW_END_ATE
674
 
675
DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
676
DW_CFA (DW_CFA_offset, 0x80)
677
DW_CFA (DW_CFA_restore, 0xc0)
678
DW_CFA (DW_CFA_nop, 0x00)
679
DW_CFA (DW_CFA_set_loc, 0x01)
680
DW_CFA (DW_CFA_advance_loc1, 0x02)
681
DW_CFA (DW_CFA_advance_loc2, 0x03)
682
DW_CFA (DW_CFA_advance_loc4, 0x04)
683
DW_CFA (DW_CFA_offset_extended, 0x05)
684
DW_CFA (DW_CFA_restore_extended, 0x06)
685
DW_CFA (DW_CFA_undefined, 0x07)
686
DW_CFA (DW_CFA_same_value, 0x08)
687
DW_CFA (DW_CFA_register, 0x09)
688
DW_CFA (DW_CFA_remember_state, 0x0a)
689
DW_CFA (DW_CFA_restore_state, 0x0b)
690
DW_CFA (DW_CFA_def_cfa, 0x0c)
691
DW_CFA (DW_CFA_def_cfa_register, 0x0d)
692
DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
693
/* DWARF 3.  */
694
DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
695
DW_CFA (DW_CFA_expression, 0x10)
696
DW_CFA (DW_CFA_offset_extended_sf, 0x11)
697
DW_CFA (DW_CFA_def_cfa_sf, 0x12)
698
DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
699
DW_CFA (DW_CFA_val_offset, 0x14)
700
DW_CFA (DW_CFA_val_offset_sf, 0x15)
701
DW_CFA (DW_CFA_val_expression, 0x16)
702
 
703
DW_CFA (DW_CFA_lo_user, 0x1c)
704
DW_CFA (DW_CFA_hi_user, 0x3f)
705
 
706
/* SGI/MIPS specific.  */
707
DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
708
/* GNU extensions.  */
709
DW_CFA (DW_CFA_GNU_window_save, 0x2d)
710
DW_CFA (DW_CFA_GNU_args_size, 0x2e)
711
DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
712
 
713
DW_END_CFA